2013-03-30 404 views
4

我已生成的Java代码的Apache CXF工具WSDL2Java的。在我服务的评论,它说我应该赞同JAXWS API 2.2,但不知道这意味着什么。在我的Maven POM我有这样的:JAXWS-API 2.2 Maven中没有加载建

​​

上生成,我在Maven中得到这些错误:

找不到符号 符号:构造 服务(java.net.URL中,javax.xml .namespace.QName,javax.xml.ws.WebServiceFeature [])

我已经检查JAX-WS 2.2 API,它实际上具有此构造......我应该怎么办?

回答

7

JAX-WS是JDK的一部分。要使用更新的版本,您必须将其放入背书目录中。要用Maven来做到这一点,你必须用maven-compiler-plugin来配置它。

This page有血淋淋的细节。

关键片段是:

<!-- Don't forget to use endorsed with JAX-WS 2.2 on Java 6 !! --> 
    <plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
     <compilerArguments> 
     <endorseddirs>${project.build.directory}/endorsed</endorseddirs> 
     </compilerArguments> 
    </configuration> 
    </plugin> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.3</version> 
    <executions> 
     <execution> 
     <phase>validate</phase> 
     <goals> 
      <goal>copy</goal> 
     </goals> 
     <configuration> 
      <outputDirectory>${project.build.directory}/endorsed</outputDirectory> 
      <silent>true</silent> 
      <artifactItems> 
      <artifactItem> 
       <groupId>javax.xml.bind</groupId> 
       <artifactId>jaxb-api</artifactId> 
       <version>2.2.4</version> 
       <type>jar</type> 
      </artifactItem> 
      <artifactItem> 
       <groupId>javax.xml.ws</groupId> 
       <artifactId>jaxws-api</artifactId> 
       <version>2.2.8</version> 
       <type>jar</type> 
      </artifactItem> 
      </artifactItems> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
+0

感谢。我得到它的工作! – Zec