私はオープンフレームワーク(私はJavaに基づくソリューションエンジニアです)のいずれにも不慣れで、cxfプロジェクトを構築しようとしています。
applicationContext.xml
ファイルと次のようなコンテンツが必要であることを理解しています
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:cxf="http://cxf.Apache.org/core" xmlns:jaxws="http://cxf.Apache.org/jaxws"
xmlns:http-conf="http://cxf.Apache.org/transports/http/configuration"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://cxf.Apache.org/core http://cxf.Apache.org/schemas/core.xsd
http://cxf.Apache.org/jaxws http://cxf.Apache.org/schemas/jaxws.xsd
http://cxf.Apache.org/transports/http/configuration http://cxf.Apache.org/schemas/configuration/http-conf.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<http-conf:conduit name="*.http-conduit">
<http-conf:client ReceiveTimeout=“300000“ AllowChunking="false"/>
</http-conf:conduit>
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<cxf:bus>
<cxf:features>
<cxf:logging />
</cxf:features>
</cxf:bus>
</beans>
初期化。
どこでダウンロードできるのかしらcxf/cxf.xml, cxf-extension-soap.xml, cxf-servlet.xml
ファイル。
または、動的Webプロジェクトを作成したのは間違っていますか?他のプロジェクトタイプはそれらのファイルを自動的に生成しますか?
私はこれが古い投稿であることを知っていますが、これは他の人を助けるかもしれません
cxf-extension-soap.xml
はcxf-rt-binding-soap
jarにありますが、cxf-rt-frontend-jaxws
が必要です。
cxf-servlet.xml
はcxf-rt-transports-http
jarにあります
cxf.xml
はcxf-rt-core
jarにあります(これは上記のものの推移的な依存関係です)
したがって、依存関係としてcxf-rt-frontend-jaxws
とcxf-rt-transports-http
を含めると(たとえば、Mavenを使用)、プロジェクトは正しく機能するはずです。
これらの各ファイルは、プロジェクトに含める必要のあるCXFjarにあります。
CXFプロジェクトを立ち上げて実行するための最速の方法は、Mavenアーキタイプを使用することです。
または、動的Webプロジェクトを作成したのは間違っていますか?他のプロジェクトタイプはそれらのファイルを自動的に生成しますか?
作成するwarファイルには、通常、META-INF
ディレクトリの下にMANIFEST.MF
というマニフェストファイルがあります。このファイルには、ビルドメタ情報が含まれています。私にとって私は持っています
Manifest-Version: 1.0
Gradle-Version: 2.0-rc-2
Created-By: 1.6.0_31 (Sun Microsystems Inc.)
Version: 10.51
Build: dev
Build-Timestamp: 10/01/2015 12:53:32
Build-User: athakur
Build-Host: ATHAKUR
このディレクトリは、プロジェクトをビルドしてjarまたはwarを作成するときに自動的に作成されます。メインクラスのような他の属性を持つこともできます [このQを参照] 。
今あなたの質問に来ています。多くのライブラリは、構成ファイルを対応するjarのMETA-INFフォルダーに配置します。これは単なる別の例であり、探しているjarはCXFjarです。
Gradleの場合、build.gradle
ファイルに以下を追加できます
compile("org.Apache.cxf:cxf-rt-frontend-jaxrs:3.1.3")
compile("org.Apache.cxf:cxf-rt-frontend-jaxws:3.1.3")
compile("org.Apache.cxf:cxf-rt-transports-http:3.1.3")
これは古い投稿ですが、古いCXFを新しいものに移行する人々のためにまだ出てきます。そして私が見つけたのはcxf-rt-bindings-soap-3.1.7.jar
はもうclasspath:META-INF/cxf/cxf-extension-soap.xml
これを参照してください: RESTCXFおよびSpringcxf-extension-jaxrs-bindingファイルが見つかりません例外?
cxfのバージョン3.2.Xのcxf-extension-http.xmlおよびcxf-extension-soap.xmlには、この行cxf-extension-jaxws.xmlを含める必要があります。
Web.xmlは次のようになります
CXF
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:ApplicationContext-cxf.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<display-name>CXF Servlet</display-name>
<servlet-class>
org.Apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
以下は、動作するApplicationContext.xmlです。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.Apache.org/jaxws" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:cxf="http://cxf.Apache.org/core" xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.Apache.org/jaxrs http://cxf.Apache.org/schemas/jaxrs.xsd http://cxf.Apache.org/jaxws http://cxf.Apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://cxf.Apache.org/core http://cxf.Apache.org/schemas/core.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-xml.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<task:annotation-driven />
<context:component-scan base-package="com.smoothexample">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Service" />
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Component" />
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Repository" />
</context:component-scan>
<context:annotation-config />
<context:component-scan base-package="com.smoothexample" />
<bean
class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />
<bean id="addressSoapService" class="com.smoothexample.cxf.soap.ws.impl.AddressSoapServiceImpl" />
<jaxws:endpoint id="addressEndpointId"
implementorClass="com.smoothexample.cxf.soap.ws.impl.AddressSoapServiceImpl"
implementor="#addressSoapService" address="/addressSoapService">
</jaxws:endpoint>
</beans>
すべてのMaven依存関係は、cxf/cxf.xml、cxf-extension-soap.xml、cxf-servlet.xmlのjarを含む次のように定義されています。
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lal.pro</groupId>
<artifactId>Apache-cxf-soap-ws</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Apache-cxf-soap-ws Maven Webapp</name>
<url>http://maven.Apache.org</url>
<properties>
<cxf.version>2.5.0</cxf.version>
<org.springframework.version>4.1.1.RELEASE</org.springframework.version>
<ch.qos.logback.version>1.1.3</ch.qos.logback.version>
<org.sl4j.version>1.7.12</org.sl4j.version>
<spring.ws.version>2.2.4.RELEASE</spring.ws.version>
</properties>
<dependencies>
<dependency>
<groupId>org.Apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.Apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
<build>
<finalName>Apache-cxf-soap-ws</finalName>
</build>
</project>
詳細については、 http://www.smoothexample.com/webservices/Apache_cxf_soap_web_services.html をご覧ください。