Java JDK1.5的JAXWS代码生成和并行Spring实现
我们试图从一系列wsdl(每个wsdl都有自己的xsd)生成源代码存根。我们可以很好地做到这一点,并且在JDK1.6下可以完美地工作,但是我们需要它在JDK1.5下工作 我们使用jaxws-maven插件生成源代码,但是它取决于wsimport二进制文件是否可用(这在JDK1.5中不可用)。我们找到了一个解决方案,现在可以生成源代码了 最后一个问题是,当我们尝试在Spring(2.5.6)中使用编译后的存根代码时,我们正在使用JaxWsPortProxyFactoryBean与生成的客户机代码进行接口。我们得到一个java.lang.NoClassDefFoundError:javax/xml/ws/soap/Addressing。我调查了原因,发现javax.xml.ws/javaxapi/2.1依赖项不包含此类。我将版本号升级为2.1-1,现在当我们构建项目(生成源代码)时,我们得到以下错误:Java JDK1.5的JAXWS代码生成和并行Spring实现,java,maven-2,jax-ws,spring-ws,jdk1.5,Java,Maven 2,Jax Ws,Spring Ws,Jdk1.5,我们试图从一系列wsdl(每个wsdl都有自己的xsd)生成源代码存根。我们可以很好地做到这一点,并且在JDK1.6下可以完美地工作,但是我们需要它在JDK1.5下工作 我们使用jaxws-maven插件生成源代码,但是它取决于wsimport二进制文件是否可用(这在JDK1.5中不可用)。我们找到了一个解决方案,现在可以生成源代码了 最后一个问题是,当我们尝试在Spring(2.5.6)中使用编译后的存根代码时,我们正在使用JaxWsPortProxyFactoryBean与生成的客户机代码进
cannot find symbol
symbol : method partName()
location : @interface javax.jws.WebParam
有谁能提供解决方案,让我们能够生成JAXWS客户机存根代码并使其与JaxWsPortProxyFactoryBean一起工作
提前谢谢
乔纳森
我们使用jaxws-maven插件生成源代码,但是它取决于wsimport二进制文件是否可用(这在JDK1.5中不可用)。我们找到了一个解决方案,现在可以生成源代码了
实际上,wsimport
,它是JAX-WS的一部分,不包括在Java 5中(与包含JAX-WS 2.x的Java 6不同,Java 6u14包含JAX-WS 2.1.6),但只要您提供它,对Java 5可用。奇怪的是,jaxws-maven插件声明了这些依赖项(例如,请参见),在某些地方肯定存在类加载问题,因此需要“解决”
最后一个问题是,当我们尝试在Spring(2.5.6)中使用编译后的存根代码时,我们正在使用JaxWsPortProxyFactoryBean与生成的客户机代码进行接口。我们得到一个java.lang.NoClassDefFoundError:javax/xml/ws/soap/Addressing。[……]
你使用的插件的具体版本是什么?我建议使用版本1.12和与您的pom.xml
中的插件相同的jax ws版本:
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
<version>2.1.7</version>
</dependency>
com.sun.xml.ws
jaxws工具
2.1.7
我设法解决了这个问题,在研究了几个小时的依赖关系并查看了每个依赖关系的内部内容后,我发现依赖关系javax.xml.ws:jaxws-api:2.1-1是必需的,但我们必须复制此依赖关系并取出:
<dependency>
<groupId>javax.jws</groupId>
<artifactId>jsr181</artifactId>
<version>1.0</version>
</dependency>
javax.jws
jsr181
1
然后,我必须在应用程序的pom.xml中包含以下依赖项:
<dependency>
<groupId>javax.jws</groupId>
<artifactId>jsr181-api</artifactId>
<version>1.0-MR1</version>
</dependency>
javax.jws
jsr181 api
1.0-MR1
这远远不够理想,我们必须在maven存储库中维护一个单独的专有依赖项,并记住要包含这个依赖项。令人恼火的是Maven不允许我按版本号(仅按groupId和artifactId)排除。如果有人有更好的建议,请让我知道
谢谢你的帮助。看来他们弄乱了这个罐子,请看 解决方法如下:
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.1</version>
</dependency>
javax.xml.ws
JAXWSAPI
2.1
<repository>
<id>javanet</id>
<url>http://download.java.net/maven/2/</url>
</repository>
<repository>
<id>javanet legacy</id>
<url>http://download.java.net/maven/1/</url>
<layout>legacy</layout>
</repository>
爪哇网
http://download.java.net/maven/2/
javanet遗产
http://download.java.net/maven/1/
遗产
您不能简单地尝试使用JDK6构建并使用JRE5运行吗?@user213917:谢谢您的链接。我碰到了同样的问题!