Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-3586

[regression] jaxws mojo wsgen failure with maven 3.0 due to system-scope dependencies being excluded

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.0-alpha-1
    • Fix Version/s: 3.0-alpha-2
    • Component/s: Embedding
    • Labels:
      None
    • Environment:
      Windows XP / Java 5 or 6

      Description

      I can build jar projects using the jaxws wsgen mojo (1.9) under maven
      2.0.x but it failed under m2eclipse (0.9.3) when using maven 2.1
      embedded (it works if I switch m2eclipse to use the maven 2.0.9 on my
      system).

      I tried with various JVM (Sun and IBM 5 and 6) but still got the
      problem with maven 2.1 embedded (maven 2.1-620417 and 2.1-655675):

      error is :

      From file: C:\workspace\xxx-er-go\pom.xml
      Reason: Failed to execute wsgen

      java.lang.NoClassDefFoundError: com/sun/mirror/apt/AnnotationProcessorFactory
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
      at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
      at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
      at org.codehaus.plexus.classworlds.realm.ClassRealm.loadRealmClass(ClassRealm.java:174)
      at org.codehaus.plexus.classworlds.strategy.DefaultStrategy.loadClass(DefaultStrategy.java:67)
      at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:201)
      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
      at com.sun.tools.ws.WsGen.doMain(WsGen.java:69)
      at org.codehaus.mojo.jaxws.AbstractWsGenMojo.execute(AbstractWsGenMojo.java:91)
      at org.codehaus.mojo.jaxws.MainWsGenMojo.execute(MainWsGenMojo.java:14)
      at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:577)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:498)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:265)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:191)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:149)
      at org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223)
      at org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:304)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)
      at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.java:903)
      at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbedder.java:304)
      at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1)
      at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:63)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:52)

      Any idea or fixes ?

      my pom.xml wsgen is standard :

      <build>

      <plugins>

      <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
      <source>1.5</source>
      <target>1.5</target>
      </configuration>

      <executions>
      <execution>
      <id>compile</id>
      <goals>
      <goal>compile</goal>
      </goals>
      <phase>initialize</phase>
      </execution>
      </executions>
      </plugin>

      <!-- We need JAX-WS support for Annotation processing -->
      <!-- NB: wsgen can handle only one SEI at a
      time so we define an
      execution by SEI -->
      <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>jaxws-maven-plugin</artifactId>
      <executions>
      <execution>
      <id>go-wsgen</id>
      <goals>
      <goal>wsgen</goal>
      </goals>
      <phase>generate-sources</phase>
      <configuration>

      <resourceDestDir>${project.build.directory}/classes/com/mycorp/service/resources/wsdl</resourceDestDir>

      <sei>com.mycorp.service.MyService</sei>
      <genWsdl>true</genWsdl>
      <keep>false</keep>
      </configuration>
      </execution>
      </executions>
      </plugin>

      </plugins>

      </build>

      I attached a simple project so you could try it.

      From others reports, it seems the tools.jar is missing in embedded mode.

        Attachments

        1. sample-wsgen.zip
          2 kB
          Gomez Henri
        2. pom.xml
          2 kB
          Milos Kleint
        3. sample-wsgen-fixed.zip
          2 kB
          Gomez Henri
        4. sample-wsgen-20081229.zip
          3 kB
          Gomez Henri

          Issue Links

            Activity

              People

              • Assignee:
                jvanzyl Jason van Zyl
                Reporter:
                hgomez Gomez Henri
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: