java.lang.NoClassDefFoundError: org/apache/axis2/client/Stub

Agregué un servicio web usando Axis2 a mi proyecto y ahora no puedo ejecutar mi aplicación.

Este es el classpath que estoy usando:

<property name="classpath" location="bin:EventReservationCore/bin:EventReservationCore/db:EventReservationCore/lib/*:EventReservationCore/lib/util_iso2.jar:EventReservationCore/lib/sqlitejdbc-v056.jar:AuthorizationRMI/lib/AuthorizationService.jar:EventReservationCore/lib/activemq-all-5.4.3.jar:/home/ander/axis2-1.6.1/webapp/axis2.war"/>

Y este es el objetivo que se ejecuta hasta que agregue el servicio web Axis2.

<target name="run.besocial">
            <java classname="eventReservationServer.ReservationEventServer" classpath="${classpath}" fork="true">
                <jvmarg value="-Djava.rmi.server.codebase=file:EventReservationCore/bin/ file:EventReservationCore/lib/util_iso2.jar"/>
                <jvmarg value="-Djava.security.policy=EventReservationCore/java.policy" />
            </java>
    </target>

Como resultado me sale este error:

 [java] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/axis2/client/Stub
 [java]     at java.lang.ClassLoader.defineClass1(Native Method)
 [java]     at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
 [java]     at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
 [java]     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
 [java]     at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
 [java]     at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
 [java]     at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
 [java]     at java.security.AccessController.doPrivileged(Native Method)
 [java]     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 [java]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
 [java]     at eventReservationServer.eventServerGateway.WSEventServerGateway.getEvents(WSEventServerGateway.java:19)
 [java]     at eventReservationServer.ReservationEventServer.<init>(ReservationEventServer.java:101)
 [java]     at eventReservationServer.ReservationEventServer.main(ReservationEventServer.java:130)
 [java] Caused by: java.lang.ClassNotFoundException: org.apache.axis2.client.Stub
 [java]     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 [java]     at java.security.AccessController.doPrivileged(Native Method)
 [java]     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 [java]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
 [java]     ... 15 more

preguntado el 03 de mayo de 12 a las 18:05

4 Respuestas

Si está utilizando Tomcat, copie todos los archivos jar ubicados en la carpeta axis2/lib a la carpeta tomcat/lib y también agréguelos a la ruta de clase como esta D:\axis2-1.6.2\lib*

contestado el 03 de mayo de 12 a las 20:05

Excepción en el subproceso "principal" java.lang.NoClassDefFoundError: org/apache/axis2/client/Stub

El error anterior se puede eliminar agregando axis2-kernel-1.6.2 a la ruta de clase, pero es posible que comience a recibir otros errores después de haber generado los stubs con wsdl2java.bat.

Por lo tanto, es mejor que agregue todos los axis2-jars a classpath mientras compila el cliente.

Espero que esto ayude

contestado el 03 de mayo de 12 a las 20:05

Ninguna de las respuestas me ayudó. Esto es lo que hice.

Usé eclipse para generar Runnable Jar (clic derecho-> Exportar-> Runnable Jar) con todas las bibliotecas agregadas como paquete. Me dio un JAR que podía ejecutar desde la línea de comandos.

Luego diferencié entre Jar de eclipse y Jar que creó mi compilación. Pude encontrar las dependencias faltantes que mi compilación no estaba poniendo en Jar.

Respondido 12 Feb 15, 23:02

Si enfrentó el mismo problema con el cargador de clases JBoss, siga los consejos en aquí y aquí.

La parte más importante es definir un nuevo módulo en las configuraciones del módulo JBoss y también ubicar el módulo en su archivo MANIFEST.MF.

Maven te ayudará a hacer la última parte. A continuación se muestra una configuración de muestra para agregar un módulo de eje a su archivo Manifest.

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>
            <configuration>
                <archive>
                    <manifestEntries> <!--Manually added JBoss Modules (that are not found by JBoss class loader) must be loaded here-->
                        <Dependencies>axis.axis</Dependencies>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>

Dependiendo de su tipo de paquete, usaría otros complementos maven como maven-jar-plugin o maven-war-plugin.

El nombre del paquete de dependencia debe coincidir con el nombre que especificó para el nombre de su módulo en los módulos de JBoss. El módulo de eje anterior se define en los modelos JBoss como se explica en los enlaces anteriores.

 <module xmlns="urn:jboss:module:1.1" name="axis.axis">
    <properties>
        <property name="jboss.api" value="private"/>
    </properties> 
 <!--  ...   -->
 </module>

contestado el 23 de mayo de 17 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.