thingol:
O que o stdcall (que é o método tradicional de se declarar um método de uma DLL que pode ser chamado a partir de várias linguagens) tem a ver com Web Services (Axis)?
Thigol, na verdade eu não entendi muito bem isso do stdcall. A empresa que possui esse sistema e, que criou esse serviço em delphi, me passou que para que meu cliente em java funcionasse eu teria que além dos parametros do metodo passar um parametro do tipo standard call (stdcall).
E é isso que não estou entendendo muito bem.
Tento criar o cliente dessa forma:
try {
String wsURL = "http://server-call/webcliente/WebAgenda.dll/wsdl/IWebagenda?wsdl";
Object[] params = { id, nome, nasc, sexo, doc, tel, cel, conv, mat, temp};
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(wsURL);
call.setOperationName("ReceberCliente");
String ret = (String) call.invoke(params);
System.out.println("Resultado: " +ret);
} catch (ServiceException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
… no ponto do
String ret = (String) call.invoke(params);
é gerada a exceção mostrada abaixo:
# 0/06/2008 09:18:01 org.apache.axis.utils.JavaUtils isAttachmentSupported
# WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
# ; nested exception is:
# org.xml.sax.SAXException: Bad envelope tag: definitions
# AxisFault
# faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
# faultSubcode:
# faultString: org.xml.sax.SAXException: Bad envelope tag: definitions
# faultActor:
# faultNode:
# faultDetail:
# {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Bad envelope tag: definitions
# at org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:71)
# at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
# at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
# at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
# at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
# at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3084)
# at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:912)
# at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645)
# at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
# at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
# at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
# at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
# at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
# at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
# at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
# at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
# at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
# at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
# at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
# at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
# at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
# at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
# at org.apache.axis.client.Call.invoke(Call.java:2767)
# at org.apache.axis.client.Call.invoke(Call.java:2443)
# at org.apache.axis.client.Call.invoke(Call.java:2366)
# at org.apache.axis.client.Call.invoke(Call.java:1812)
# at TesteClienteWSURL.main(TesteClienteWSURL.java:48)
#
# {http://xml.apache.org/axis/}hostname:desenvolv-03
E não consegui entender o motivo desse erro.
Foi ai que o pessoal lá da empresa me disseram que se não fosse passando um parametro do tipo standard call nao ia funcionar. Desde então tenho pesquisado no google sobre e não acho muita coisa.
Poderia me dar uma luz??
[]'s