it-swarm.com.de

Verwenden von Axis2 / Java zum Generieren von Code aus WSDL

Ich versuche, Axis2/Java zu verwenden, um Webdienste zu nutzen. Insbesondere versuche ich, Java Skeleton-Code aus einer WSDL-Datei zu generieren.

Ich habe das libaxis-Java-Paket installiert, aber das Paket enthält nicht das erwartete WSDL2Java.sh-Skript. Ich habe versucht, den Java Code zu generieren:

Java -cp /usr/share/Java/axis.jar org.Apache.axis.wsdl.WSDL2Java foo.wsdl

Aber ich bekomme folgenden Fehler:

Exception in thread "main" Java.lang.NoClassDefFoundError: org.Apache.commons.logging.LogFactory
        at org.Apache.axis.components.logger.LogFactory.class$(LogFactory.Java:45)
        at org.Apache.axis.components.logger.LogFactory$1.run(LogFactory.Java:45)
        at Java.security.AccessController.doPrivileged(Native Method)
        at org.Apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.Java:41)
        at org.Apache.axis.components.logger.LogFactory.<clinit>(LogFactory.Java:33)
        at org.Apache.axis.i18n.ProjectResourceBundle.<clinit>(ProjectResourceBundle.Java:53)
        at org.Apache.axis.i18n.MessagesConstants.<clinit>(MessagesConstants.Java:32)
        at org.Apache.axis.utils.Messages.<clinit>(Messages.Java:36)
        at org.Apache.axis.wsdl.WSDL2Java.<clinit>(WSDL2Java.java:112)
Could not find the main class: org.Apache.axis.wsdl.WSDL2Java. Program will exit.
3
Lorin Hochstein

Basierend auf der Antwort von Riccardo Murri konnte ich alle für den Klassenpfad erforderlichen JAR-Dateien ermitteln:

Java -cp /usr/share/Java/axis.jar:/usr/share/Java/commons-logging.jar:/usr/share/Java/commons-logging-api.jar:/usr/share/Java/commons-logging-adapters.jar:/usr/share/Java/commons-discovery.jar:/usr/share/Java/jaxrpc.jar:/usr/share/Java/wsdl4j.jar org.Apache.axis.wsdl.WSDL2Java foo.wsdl
1
Lorin Hochstein

In Ihrem Klassenpfad fehlt anscheinend das Commons-Logging-Gefäß:

  1. Installieren Sie das Ubuntu-Paket libcommons-logging-Java:

    Sudo apt-get installiert libcommons-logging-Java

  2. Hänge /usr/share/Java/commons-logging.jar Und seine Verwandten an deinen Klassenpfad an:

    Java -cp /usr/share/Java/axis.jar:/usr/share/Java/commons-logging.jar:/usr/share/Java/commons-logging-api.jar:/usr/share/Java/commons -logging-adapters.jar org.Apache.axis.wsdl.WSDL2Java foo.wsdl

Es ist sehr wahrscheinlich, dass andere Abhängigkeiten fehlen. Sie können das Tool JarAnalyizer verwenden, um sie zu finden und dem Klassenpfad hinzuzufügen.

3
Riccardo Murri