Jestem nowy w CXF i próbuję utworzyć klienta z WSDL. Używałem Metro i Axis w przeszłości. Pobrałem apache-cxf-2.3.3 i użyłem wsdl2java do wygenerowania kodu pośredniczącego klienta. Używam Maven i ustawić go mój pom z tym:Ustaw poziom zgodności Java w CXF wsdl2java
<properties>
<cxf.version>2.3.3</cxf.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-security</artifactId>
<version>${cxf.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<optimize>true</optimize>
<debug>true</debug>
</configuration>
</plugin>
</plugins>
</build>
Kiedy budować projektu, otrzymuję te błędy:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project client-cxf: Compilation failure: Compilation failure:
[ERROR] \Devel\Projects\Client-CXF\src\main\java\my\webservice\ServiceRuntimeException.java:[38,149] cannot find symbol
[ERROR] symbol : method required()
i
[ERROR] \Devel\Projects\Client-CXF\src\main\java\my\snmpv2\MyService.java:[76,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
Wydaje się, że problemy związane są z faktem, że wygenerowany kod wykorzystuje funkcje Java 6 ("wymagany" element dla XmlElementRef, nowe konstruktory dla usługi), ale zależności CXF Maven są dla języka Java 5.
Czy istnieje sposób na określenie, że wygenerowany kod powinien być zgodny z Java 5?
Dziękujemy za wyjaśnienie zgodności i użycie opcji -fe. Opis na http://cxf.apache.org/docs/wsdl-to-java.html nie wyjaśnia tego dobrze i można wskazać, której wersji jax-ws należy użyć. – sdoca
Doskonały, działa teraz dla mnie. – Dax