Web Service java + php(Nusoap)

2 respostas
scarenci

Olá pessoal, :D

Estou com uma dúvida de como conectar o meu cliente em java com um web service em php chamado (Nusoap). Primeiramente a compilação do cliente está com erro na chamada do call:

Ex. O cliente em java, está muito parecido com esse e está dando um erro na chamada do call.

Exception in thread "main" java.lang.NoClassDefFoundError:
javax/mail/MessagingException
at SOAPClient.buildCall(SOAPClient.java:29)
at SOAPClient.main(SOAPClient.java:73)
Caused by: java.lang.ClassNotFoundException: javax.mail.MessagingException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

view plaincopy to clipboardprint?
import org.apache.axis.client.Service;    
    import org.apache.axis.client.Call;    
        
    public class Client {    
            
       public static void main (String [] args) throws Exception {    
               
              String local = "http://127.0.0.1:8080/projeto/engineService?wsdl";    
                   
              Call call = (Call) new Service().createCall();    
                   
              call.setTargetEndpointAddress(local);    
                      
              call.setOperationName("verificarAutenticidade");    
                  
                        
              Object[] param = new Object[]{new String("ola")};    
                
              String valor = (String)call.invoke(param);    
                 
                
              System.out.println("Valor : " + valor);    
               
       }    
       
   }

E com esse código eu consigo acessar um web service em qualquer linguagem usando o conceito de wsdl?

Já no nusoap a resposta é uma array contendo os dados que é transformado em xml, a passagem de parametros do cliente

Object[] param = new Object[]{new String("ola")};

funciona desta mesmo forma?

Em outros lugares eu vi que eles chamam assim, utilizando o vector!!!

Vector params = new Vector();
params.addElement(new Parameter("p1", Integer.class, p1, null));
params.addElement(new Parameter("p2", Integer.class, p2, null));
call.setParams (params);

// faz a chamada
Response resp = call.invoke(url, ?? );
Parameter result = resp.getReturnValue();

Qual é a solução mais adequada para se chamar e passar os parametros no nusoap?

Agradeço desde já qualquer ajuda! :wink:

2 Respostas

Shelson

vc colocou a biblioteca de mail no classpath ?

scarenci

Muito obrigado Shelson,

Realmente eu tinha esquecido!! :oops:

Eu concertei, mas ainda tem um erro de:

[Fatal Error] :1:357: The value of the attribute

"prefix=“xmlns”,localpart=“ns1”,rawname=“xmlns:ns1" is invalid. Prefixed

namespace bindings may not be empty.

Exception in thread main [SOAPException: faultCode=SOAP-ENV:Client;

msg=Parsing error, response was:

The value of the attribute

"prefix=“xmlns”,localpart=“ns1”,rawname=“xmlns:ns1" is invalid. Prefixed

namespace bindings may not be empty.;

targetException=org.xml.sax.SAXParseException: The value of the attribute

"prefix=“xmlns”,localpart=“ns1”,rawname=“xmlns:ns1" is invalid. Prefixed

namespace bindings may not be empty.]

at org.apache.soap.rpc.Call.invoke(Call.java:335)

at org.apache.soap.rpc.Call.invoke(Call.java:244)

at SOAPClient.getResponse(SOAPClient.java:42)

at SOAPClient.main(SOAPClient.java:68)

Caused by: org.xml.sax.SAXParseException: The value of the attribute

"prefix=“xmlns”,localpart=“ns1”,rawname=“xmlns:ns1" is invalid. Prefixed

namespace bindings may not be empty.

at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown

Source)

at

com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown

Source)

at org.apache.soap.util.xml.XMLParserUtils.parse(XMLParserUtils.java:323)

at org.apache.soap.util.xml.XMLParserUtils.parse(XMLParserUtils.java:263)

at org.apache.soap.rpc.Call.invoke(Call.java:296)

at org.apache.soap.rpc.Call.invoke(Call.java:244)

at SOAPClient.getResponse(SOAPClient.java:42)

at SOAPClient.main(SOAPClient.java:68)

Alguem sabe o que pode ser!

Criado 17 de dezembro de 2008
Ultima resposta 17 de dez. de 2008
Respostas 2
Participantes 2