Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDK1.5的JAXWS代码生成和并行Spring实现_Java_Maven 2_Jax Ws_Spring Ws_Jdk1.5 - Fatal编程技术网

Java JDK1.5的JAXWS代码生成和并行Spring实现

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与生成的客户机代码进

我们试图从一系列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,现在当我们构建项目(生成源代码)时,我们得到以下错误:

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)排除。如果有人有更好的建议,请让我知道


谢谢你的帮助。

看来他们弄乱了这个罐子,请看

解决方法如下:

  • 删除M2_REPO/javax/xml/ws/jaxws-api/2.1/目录
  • 使用此依赖项

    <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:谢谢您的链接。我碰到了同样的问题!