I am trying to use jaxws maven plugin to generate source for my web service client and getting following exception;
[ERROR] Failed to execute goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.2:wsimport (default) on project cf-wsjavaclient: Error executing: wsimpor
t [-keep, -s, C:\Users\sjunejo\Documents\GitHub\sandbox-ofsconnectorpoc\cf-wsjavaclient\target, -Xnocompile, http://localhost:9090/axis2/services/OFSC
onnectorServiceWS?wsdl]: UndeclaredThrowableException: javax.xml.bind.annotation.XmlElementRef.required() -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.2:wsimport (default) on p
roject cf-wsjavaclient: Error executing: wsimport [-keep, -s, C:\Users\sjunejo\Documents\GitHub\sandbox-ofsconnectorpoc\cf-wsjavaclient\target, -Xnoco
mpile, http://localhost:9090/axis2/services/OFSConnectorServiceWS?wsdl]
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error executing: wsimport [-keep, -s, C:\Users\sjunejo\Documents\GitHub\sandbox-ofsconnecto
rpoc\cf-wsjavaclient\target, -Xnocompile, http://localhost:9090/axis2/services/OFSConnectorServiceWS?wsdl]
at org.jvnet.jax_ws_commons.jaxws.WsImportMojo.wsImport(WsImportMojo.java:360)
at org.jvnet.jax_ws_commons.jaxws.WsImportMojo.processWsdlViaUrls(WsImportMojo.java:342)
at org.jvnet.jax_ws_commons.jaxws.WsImportMojo.execute(WsImportMojo.java:283)
at org.jvnet.jax_ws_commons.jaxws.MainWsImportMojo.execute(MainWsImportMojo.java:30)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: java.lang.reflect.UndeclaredThrowableException
at $Proxy44.required(Unknown Source)
at com.sun.tools.xjc.generator.bean.field.AbstractField.annotateReference(AbstractField.java:192)
at com.sun.tools.xjc.generator.bean.field.AbstractField.annotate(AbstractField.java:161)
at com.sun.tools.xjc.generator.bean.field.AbstractFieldWithVar.createField(AbstractFieldWithVar.java:80)
at com.sun.tools.xjc.generator.bean.field.SingleField.<init>(SingleField.java:94)
at com.sun.tools.xjc.generator.bean.field.SingleField.<init>(SingleField.java:81)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.sun.tools.xjc.generator.bean.field.GenericFieldRenderer.generate(GenericFieldRenderer.java:69)
at com.sun.tools.xjc.generator.bean.field.DefaultFieldRenderer.generate(DefaultFieldRenderer.java:82)
at com.sun.tools.xjc.generator.bean.BeanGenerator.generateFieldDecl(BeanGenerator.java:774)
at com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassBody(BeanGenerator.java:555)
at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:258)
at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:166)
at com.sun.tools.xjc.model.Model.generateCode(Model.java:290)
at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:283)
at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:94)
at com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:142)
at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2244)
at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:191)
at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:137)
at com.sun.tools.ws.wscompile.WsimportTool.buildWsdlModel(WsimportTool.java:381)
at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:198)
at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:179)
at com.sun.tools.ws.WsImport.doMain(WsImport.java:74)
at org.jvnet.jax_ws_commons.jaxws.WsImportMojo.wsImport(WsImportMojo.java:357)
... 24 more
Caused by: java.lang.NoSuchMethodException: javax.xml.bind.annotation.XmlElementRef.required()
at java.lang.Class.getDeclaredMethod(Class.java:1937)
at com.sun.codemodel.TypedAnnotationWriter.invoke(TypedAnnotationWriter.java:112)
... 52 more
Here is my POM I am using to build the project;
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxxxx</groupId>
<artifactId>cf-wsjavaclient</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>cf-wsjavaclient</name>
<properties>
<wsdlLoc>http://localhost:9090/axis2/services/OFSConnectorServiceWS?wsdl</wsdlLoc>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.6</version>
<!-- Disable tests for now, until we have client jar built then we can run as follows;
To run the tests:
$ mvn verfiy -DskipTests=false
-->
<configuration>
<skipTests>${skipTests}</skipTests>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
<configuration>
<wsdlUrls>
<wsdlUrl>${wsdlLoc}</wsdlUrl>
</wsdlUrls>
<sourceDestDir>${basedir}/target</sourceDestDir>
</configuration>
</plugin>
<!-- 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>${basedir}/endorsed</endorseddirs>
</compilerArguments>
</configuration>
</plugin-->
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
I tried to find information but there nothing available. Could you please help.
Thanks
--
Sjunejo
I was having the same error recently.
It seems that it happens because wsimport messes with 2.1 and 2.2 versions of jaxb.
I was able to generate the Web Services sources correctly by editing the project pom.xml and adding a <target>2.1</target>
tag to the configuration of each imported wsdl, like this:
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<wsdlFiles>
<wsdlFile>path/to/file.wsdl</wsdlFile>
</wsdlFiles>
<wsdlLocation>http://path/to/webservice?wsdl</wsdlLocation>
<staleFile>path/to/file.stale</staleFile>
<target>2.1</target>
</configuration>
<id>wsimport-generate-WebServiceName</id>
<phase>generate-sources</phase>
</execution>
Hope it helps whoever is having this issue.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With