Để biết thêm các bước, tôi muốn chia sẻ các bước bổ sung về cách loại bỏ tất cả JAXB và CXF cũ khỏi JBoss 6.1 và thêm phiên bản mới của họ (đó được nâng cao Yves Martin câu trả lời):
Để được gỡ bỏ:
common/deploy/jbossws-console.war
server/<configuration>/deploy/jbossws-console-activator-jboss-beans.xml
server/<configuration>/deployers/jbossws.deployer/
server/<configuration>/deployers/jbossws-jaxrpc.deployer/
client/cxf-*.jar
client/jaxws-*.jar
client/jaxb-impl.jar
client/jaxb-xjc.jar
client/wstx-lgpl.jar
client/jbossws-*.jar
client/stax-api.jar
client/activation.jar
lib/wstx-lgpl.jar
lib/jaxb-impl.jar
lib/jaxb-xjc.jar
common/lib/jboss-jaxb-api_2.2_spec.jar
common/lib/jboss-jaxws-api_2.2_spec.jar
common/lib/jboss-jaxrpc-api_1.1_spec.jar
common/lib/cxf-*.jar
common/lib/jaxws-*.jar
common/lib/jbossws-*.jar (except common/lib/jbossws-spi.jar)
lib/endorsed/activation.jar
lib/endorsed/jboss-jaxb-api_2.2_spec.jar
lib/endorsed/jbossws-cxf-factories.jar
lib/endorsed/jboss-jaxws-api_2.2_spec.jar
lib/endorsed/stax-api.jar
Từ các tập tin cấu hình tại địa chỉ: máy chủ // deployers/tổng đài-JBoss-đậu. xml
remove sau dòng:
<entry>
<key>javax.xml.ws.WebServiceContext</key>
<value><inject bean="org.jboss.switchboard.WebServiceContextResourceProvider"/></value>
</entry>
<inject bean="org.jboss.switchboard.WebServiceRefResourceProvider"/>
Nếu bạn muốn nâng cấp JAXB + CXF tới 2.6.3, thêm các thư viện này:
lib/jaxb-xjc-2.1.13.jar
lib/endorsed/activation-1.1.1.jar
lib/endorsed/jaxb-api-2.2.6.jar
lib/endorsed/jaxws-api-2.2.6.jar
lib/endorsed/stax2-api-3.1.1.jar
lib/endorsed/saaj-api-1.3.4.jar
lib/endorsed/cxf-api-2.6.3.jar
common/lib/cxf-api-2.6.3.jar
Nếu bạn có dự án Java 6, JAXB mới sẽ suy ra điều này từ JRE, vì vậy chúng tôi phải xác nhận phiên bản mới. Dưới đây là cách thực hiện việc này cho maven:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<maxmem>512m</maxmem>
<compilerArguments>
<endorseddirs>${project.build.directory}/endorsed</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<forkMode>once</forkMode>
<argLine>-Djava.endorsed.dirs=${project.build.directory}/endorsed</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jax.version}</version>
</artifactItem>
<artifactItem>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>${jax.version}</version>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/endorsed</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<configuration>
<fork>once</fork>
<additionalJvmArgs>-Djava.endorsed.dirs=${project.build.directory}/endorsed</additionalJvmArgs>
<!-- rest of the normal codegen configuration options -->
</configuration>
<dependencies>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${jax.version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>${jax.version}</version>
</dependency>
</dependencies>
</plugin>
Trên IDE của bạn, bạn phải thông báo bằng cách sử dụng thư viện JAXB mới. Trong trường hợp IDEA, bạn có thể thực hiện tại đây:
IDEA -> Settings -> Compiler -> Java Compiler
in "Additional command line parameters" add:
-endorseddirs /<your_absolut_path_to_project>/target/endorsed/
Nguồn
2012-11-06 09:48:48
Tôi chỉ cần có cùng một nhu cầu cho dự án của mình. Tôi đang điều tra –
Đảm bảo đăng sự tiến bộ của bạn, tôi khá khó khăn với vấn đề này. –
Trong thực tế, tôi gặp rắc rối vì JBossWS-CXF tìm thấy Spring trong ứng dụng của tôi và yêu cầu nó trong JBoss ClassLoader. Sau đó, khách hàng của tôi được tạo ra từ WSDL bởi JavaSE wsimport không tải được các lớp của nó ... Khi tôi sử dụng WS làm ứng dụng khách, tôi tìm kiếm tùy chọn đó. –