'wsimport fail with maven

I'm trying to create an ssl webservice client using maven and netbeans(7.2). The webservice is perfectly working and I test it using an ant project.

When I try to build the project and generate webservice stubs I get this error:

Failed to execute goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.2:wsimport (wsimport-generate-test_project_ws_v1) on project mavenproject3: Error executing: wsimport [-keep, -s, C:\Users\no_name\Documents\NetBeansProjects\mavenproject3\target\generated-sources\jaxws-wsimport, -verbose, -encoding, UTF-8, -extension, -Xnocompile, -catalog, C:\Users\no_name\Documents\NetBeansProjects\mavenproject3\src\jax-ws-catalog.xml, -wsdllocation, https://localhost:8181/test_project_ws_v1/test_project_ws_v1?wsdl, file:/C:/Users/no_name/Documents/NetBeansProjects/mavenproject3/src/wsdl/localhost_8181/test_project_ws_v1/test_project_ws_v1.wsdl]: UndeclaredThrowableException: javax.xml.bind.annotation.XmlElementRef.required() -> [Help 1]

This is my pom (generated by netbeans)

<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.procc</groupId>
  <artifactId>mavenproject3</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>mavenproject3</name>
  <url>http://maven.apache.org</url>
  <build>
    <resources>
      <resource>
        <targetPath>META-INF</targetPath>
        <directory>src</directory>
        <includes>
          <include>jax-ws-catalog.xml</include>
          <include>wsdl/**</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.jvnet.jax-ws-commons</groupId>
        <artifactId>jaxws-maven-plugin</artifactId>
        <version>2.2</version>
        <executions>
          <execution>
            <goals>
              <goal>wsimport</goal>
            </goals>
            <configuration>
              <wsdlFiles>
                <wsdlFile>localhost_8181/test_project_ws_v1/test_project_ws_v1.wsdl</wsdlFile>
              </wsdlFiles>
              <wsdlLocation>https://localhost:8181/test_project_ws_v1/test_project_ws_v1?wsdl</wsdlLocation>
              <staleFile>${project.build.directory}/jaxws/stale/test_project_ws_v1.stale</staleFile>
            </configuration>
            <id>wsimport-generate-test_project_ws_v1</id>
            <phase>generate-sources</phase>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>webservices-api</artifactId>
            <version>1.4</version>
          </dependency>
        </dependencies>
        <configuration>
          <sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir>
          <xnocompile>true</xnocompile>
          <verbose>true</verbose>
          <extension>true</extension>
          <catalog>${basedir}/src/jax-ws-catalog.xml</catalog>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.sun.xml.ws</groupId>
      <artifactId>webservices-rt</artifactId>
      <version>1.4</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

Thanks.



Solution 1:[1]

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.

Solution 2:[2]

We had a similar issue. When doing a wsimport we got a command line error stating -encoding was an invalid parameter.

Looking in the POM, and the plugin section for jaxws-maven-plugin the following dependency existed:

<dependencies>
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-tools</artifactId>
        <version>2.2.5</version>
   </dependency>
</dependencies>

Removing this fixed the issue. We were also using version 2.3 of jaxws-maven-plugin

Solution 3:[3]

I could build on one machine but not another - the issue was caused by environment variables

Check your maven environment variables, M2 and M2_HOME

M2_HOME - "<Apache-maven-root-directory>" e.g. ("C:\Tools\apach-maven")

M2 - "%M2_HOME%\bin" (For windows machine)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 theINtoy
Solution 3 Cod