Usando o Axis2 / Java para gerar código do WSDL

3

Estou tentando usar o Axis2 / Java para consumir serviços da web. Em particular, estou tentando gerar código de esqueleto Java a partir de um arquivo WSDL.

Eu instalei o pacote libaxis-java, mas o pacote não contém o script WSDL2Java.sh que eu esperava. Eu tentei gerar o código Java fazendo:

java -cp /usr/share/java/axis.jar org.apache.axis.wsdl.WSDL2Java foo.wsdl

Mas recebo o seguinte erro:

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.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.
    
por Lorin Hochstein 14.10.2010 / 20:36

2 respostas

1

Com base na resposta de Riccardo Murri, consegui determinar todos os arquivos jar necessários para o caminho de classe:

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
    
por Lorin Hochstein 14.10.2010 / 21:33
3

Parece que você não tem o jar de commons-logging em seu caminho de classe:

  1. Instale o pacote do Ubuntu libcommons-logging-java :

    sudo apt-get instala o libcommons-logging-java

  2. Anexe o /usr/share/java/commons-logging.jar e seus parentes ao seu caminho de classe:

    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

É bem provável que haja outras dependências ausentes; talvez você queira usar a ferramenta JarAnalyizer para encontrá-los e adicioná-los ao caminho de classe.

    
por Riccardo Murri 14.10.2010 / 21:04

Tags