2013-03-30 21 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