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:
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.
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?
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 'testeWebService'
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: AxisFault
faultCode: Server.userException
faultSubcode:
faultString: No such operation &apos;testeWebService&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]
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?
[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!