我正在尝试使用父maven模块ism-maven创建一个maven模块web_service_client。 该模块包含生成的WS类。我什么都没改变。我正在使用IntelliJ IDEA 11.1.2。
这是我的web_service_client的pom.xml。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ism-maven</artifactId>
<groupId>sk.tuke.ism</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>web_service_client</artifactId>
</project>
在我运行web_service_client的maven编译后,我收到了这个错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project web_service_client: Compilation failure: Compilation failure:
[ERROR] \Users\Marek\Dropbox\ism-maven\web_service_client\src\main\java\sk\tuke\ism\webclient\Service1.java:[46,8] cannot find symbol
[ERROR] symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
[ERROR] location: class javax.xml.ws.Service
[ERROR] \Users\Marek\Dropbox\ism-maven\web_service_client\src\main\java\sk\tuke\ism\webclient\Service1.java:[54,8] cannot find symbol
[ERROR] symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
[ERROR] location: class javax.xml.ws.Service
[ERROR] \Users\Marek\Dropbox\ism-maven\web_service_client\src\main\java\sk\tuke\ism\webclient\Service1.java:[62,8] cannot find symbol
[ERROR] symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
[ERROR] location: class javax.xml.ws.Service
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
我在这里找到一些关于此错误的文章,但我是这个领域的新手,我无法解决这个问题。
感谢您的帮助。
答案 0 :(得分:5)
似乎生成的代码使用JAX-WS 2.2。您可以尝试覆盖默认版本并在pom.xml中设置target = 2.1或target = 2.0:
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<target>2.1</target>
答案 1 :(得分:1)
我遇到了完全相同的问题,franpas的回答帮助我解决了这个问题。这是我的解决方案,它创建类并正确编译。我也在linux上使用本地maven 3.1安装。
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<target>2.1</target>
<verbose>true</verbose>
<!-- Fix naming resolution due to ChangeOrderResponse duplicate stanza -->
<args>
<arg>-B-XautoNameResolution</arg>
</args>
<wsdlDirectory>src/main/wsdl</wsdlDirectory>
<wsdlFiles>
<wsdlFile>changeorder.wsdl</wsdlFile>
</wsdlFiles>
<packageName>com.whatever.service
</packageName>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
<version>2.2.8</version>
</dependency>
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.2.11</version>
</dependency>
</dependencies>
</plugin>