Web service - msg de erro: No Deserializer found

2 respostas
leonardo.nvm

Primeira msg no forum, desculpa qualquer coisa errada…

mas eu to precisando de uma ajuda estou a 1 semana quebrando a cabeça para solucionar esse problema… tenho um web service de teste aqui configurado e estou tentando fazer um cliente para ele, ao executar o cliente ele me retorna essa msg de erro:

No Deserializer found to deserialize a ‘com.projetoteste.webservice:ns:testeWebResult’ using encoding style ‘null’.

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

at teste.WebServiceClient.teste(WebServiceClient.java:71)

at teste.WebServiceClient.main(WebServiceClient.java:31)

abaixo estra meu codigo

String returnVal = null;

	URL endpointURL = new URL(http://localhost:7001/teste/teste.jws);
	OracleSOAPHTTPConnection m_httpConnection = new OracleSOAPHTTPConnection();
	SOAPMappingRegistry m_smr = new SOAPMappingRegistry();
	
	Call call = new Call();
	call.setSOAPTransport(m_httpConnection);
	
	Vector params = new Vector();
	params.addElement(new Parameter("ns1:s", java.lang.String.class, userID, null));
	
	call.setParams(params);

	
	call.setSOAPMappingRegistry(m_smr);
	
	call.setTargetObjectURI("com.projetoteste.webservice");
	call.setMethodName("testeWeb");
	call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
							
	Response response = call.invoke(endpointURL, "");
	
	//System.out.println(response.toString());
	
	if (!response.generatedFault()) {
		Parameter result = response.getReturnValue();
		returnVal = (String)result.getValue();
	} else {
		Fault fault = response.getFault();
		throw new SOAPException(fault.getFaultCode(), fault.getFaultString());
	}
	
	return returnVal;

se alguem souber o que isso pode ser ou puder me ajudar…
[]s

Leo

2 Respostas

jgbt

parece ser erro de tipo de objeto.p/ tipos java essa conversão eh automatica, para tipos(classes) que vc cria, vc tem que dizer p/ wsdl que tipo ele deve usar. da uma olhada nas docs.
no axis seria assim:

QName qn = new QName("urn:IniciativaWS","Iniciativa");
		call.registerTypeMapping(Iniciativa.class, qn, 
				new org.apache.axis.encoding.ser.BeanSerializerFactory(Iniciativa.class, qn),
				new org.apache.axis.encoding.ser.BeanDeserializerFactory(Iniciativa.class, qn));

onde iniciativa eh p bean que eu quero trafegar.

[]'s

leonardo.nvm

João,

obrigado pela ajuda… mas eu não estou usando o axis, estou usando o weblogic… e o meu objeto call não tem o método call.registerTypeMapping… :S

org.apache.soap.rpc.Call; essa é a classe que eu estou utilizando

e realmente como vc falou para tipos primitivos funciona, com classes não

[]s

Leo

Criado 13 de julho de 2007
Ultima resposta 13 de jul. de 2007
Respostas 2
Participantes 2