Problemas com Axis

Pessoal,

após ler o tutorial sobre o Axis aqui no GUJ, fiz a instalação do TomCat, Axis, criei meu primeiro WebService, mas tive problemas na hora de rodar o client.

Meu WebService possui a seguinte assinatura:

Este é o meu client:

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class ClientWS {
    
    public static void main(String[] args) {
    	
        try {
			String endpoint = "http://localhost:8080/axis/EASports.jws";
			Service service = new Service();
			Call call = (Call) service.createCall();
			call.setTargetEndpointAddress(endpoint);
			call.setOperationName("testeWebService");
			String ret = (String) call.invoke(new Object[]{new String("marco")});
			System.out.println("Got result : " + ret);        	
        } catch (ServiceException se) {
        	System.out.println("ServiceException: "+se.getMessage());
        } catch (RemoteException re) {
			System.out.println("RemoteException: "+re.getMessage());
        } catch (Exception e) {
			System.out.println("Exception: "+e.getMessage());
        }
                
    }
}

E esta é a minha exception:

:frowning:

java.lang.ExceptionInInitializerError
at org.apache.axis.client.Service.getAxisClient(Service.java:143)
at org.apache.axis.client.Service.(Service.java:152)
at ClientWS.main(ClientWS.java:14)
Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.reflect.InvocationTargetException
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:532)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:414)
at org.apache.axis.components.logger.LogFactory.getLog(LogFactory.java:76)
at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler.java:81)
… 3 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
… 7 more
Caused by: java.lang.VerifyError: (class: org/apache/log4j/LogManager, method: <clinit> signature: ()V) Incompatible argument to function
at org.apache.log4j.Logger.getLogger(Logger.java:85)
at org.apache.commons.logging.impl.Log4JLogger.(Log4JLogger.java:102)
… 12 more
Exception in thread “main”

Alguém se habilita?

PS: Todos os arquivos .jar de C:axis-1_1lib estão no claspath.

Atenciosamente,

Você disse que leu o tutorial do axis agui no guj, onde está, não encontrei. Estou precisando invocar webservices feitos em delphi, vc sabe se é possível?

http://www.guj.com.br/servlet/guj?PARSE=true&MAMUTE_ACTION=br.com.guj.action.ListArticle&MAMUTE_TEMPLATE=ShowArticle&LIST_ARTICLE=single&ArticleId=32&PAGE=1

Acredito ser possível invocar WebServices feitos em qualquer linguagem, afinal, não é essa uma das vantagens do dito cujo?

espero que sim !!! :smiley:

Pessoal,

descobri que meu problema estava na ordem do ClassPath. O Log4J estava sendo importado do pacote errado e por isso estava gerando aquela exception.

Infelizmente estou recebendo uma outra mensagem de erro quando rodo o meu Client:

[code]Exception: No such operation 'testeWebService’
AxisFault
faultCode: Server.userException
faultSubcode:
faultString: No such operation &apos;testeWebService&apos;
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: AxisFault
faultCode: Server.userException
faultSubcode:
faultString: No such operation &amp;apos;testeWebService&amp;apos;
faultActor:
faultNode:
faultDetail:

No such operation 'testeWebService’
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
at weblogic.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:585)
at weblogic.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(XMLNamespaceBinder.java:898)
at weblogic.apache.xerces.impl.XMLNamespaceBinder.endElement(XMLNamespaceBinder.java:644)
at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1008)
at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1469)
at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
at weblogic.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at weblogic.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)
at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:138)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
at org.apache.axis.client.Call.invoke(Call.java:2553)
at org.apache.axis.client.Call.invoke(Call.java:2248)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.axis.client.Call.invoke(Call.java:1691)
at ClientWS.main(ClientWS.java:14)

No such operation 'testeWebService’
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
at weblogic.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:585)
at weblogic.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(XMLNamespaceBinder.java:898)
at weblogic.apache.xerces.impl.XMLNamespaceBinder.endElement(XMLNamespaceBinder.java:644)
at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1008)
at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1469)
at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
at weblogic.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at weblogic.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)
at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:138)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
at org.apache.axis.client.Call.invoke(Call.java:2553)
at org.apache.axis.client.Call.invoke(Call.java:2248)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.axis.client.Call.invoke(Call.java:1691)
at ClientWS.main(ClientWS.java:14)[/code]

A assinatura do WebService está correta:

E se eu chamo a URL http://localhost:8080/axis/EASports.jws?wsdl, recebo a seguinte resposta:

[code] <?xml version="1.0" encoding="UTF-8" ?>

O que estou fazendo de errado?

Obrigado,

Fui tentar compilar o arquivo FibClient do tutorial e obtive os seguintes erros:

--------------------Custom Tool: javac--------------------
FibClient.java:6: cannot resolve symbol
symbol : class Service
location: class FibClient
Service service = new Service();
^
FibClient.java:6: cannot resolve symbol
symbol : class Service
location: class FibClient
Service service = new Service();
^
FibClient.java:7: cannot resolve symbol
symbol : class Call
location: class FibClient
Call call = (Call) service.createCall();
^
FibClient.java:7: cannot resolve symbol
symbol : class Call
location: class FibClient
Call call = (Call) service.createCall();
^
4 errors

Process completed.

Já coloquei todos os .jar que tem dentro da instalação do axis no meu classpath. Você sabe o que pode estar faltando?

Provavelmente está faltando os imports:

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

Exatamente…coloquei-os e funcionou !!! Valeu
E vc conseguiu resolver seu problema?

[quote=“wender”]Exatamente…coloquei-os e funcionou !!! Valeu
E vc conseguiu resolver seu problema?[/quote]

Infelizmente meu client ainda não está funcionando.

Você conseguiu rodar o exemplo completo? Seu client funcionou?

Entrei para a lista de usuários do Axis, postei uma mensagem lá, mas até agora fui ignorado solenemente, ou como gosta de dizer um amigo meu: defecaram no meu crânio! :frowning:

consegui chamar o exemplo do Fibonacci mas o do Google não

Então fiz alguma bobagem no meu Client, vou tentar de novo com um exemplo igual ao do artigo!

Quanto ao Google, você tem o número de licença para fazer a chamada ao WebService?

Então fiz alguma bobagem no meu Client, vou tentar de novo com um exemplo igual ao do artigo!
[/quote]

Realmente havia um erro no Client:

String ret = &#40;String&#41; call.invoke&#40;new Object&#91;&#93;&#123;new String&#40;&#41;&#125;&#41;;

Enquanto que a assinatura do meu WebService era:

Bastou alterar a assinatura do meu WebService e tudo funcionou: