Webservice .net Client java

2 respostas
marcoskr

Estou com um problema, fiz o cliente em java para o webservice em .net mas
tá retornando 0 sempre, numa operação com parametros q nao era para ser esse
resultado. Segue código abaixo:
import javax.xml.namespace.QName;

import javax.xml.rpc.Call;
import javax.xml.rpc.ServiceFactory;

public class teste2 {

public static void main(String[] args) {

    String targetNamespace = "http://tempuri.org/";
    try { 
    	/* Service lookup */
    	ServiceFactory serviceFactory = ServiceFactory.newInstance();
    	javax.xml.rpc.Service service = serviceFactory.createService(
    			new QName(targetNamespace));
    	
    	/* Service access */
    	Call call = (Call) service.createCall();
    	call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY, "");
    	call.setProperty(Call.OPERATION_STYLE_PROPERTY, "document");
    	call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean( true ));
    	call.setProperty(Call.SOAPACTION_URI_PROPERTY, "http://tempuri.org/Sub");
    	call.setTargetEndpointAddress("http://webservices.companhiaweb.com.br/service.asmx?wsdl");
    	call.removeAllParameters();
    	call.setPortTypeName(new QName(targetNamespace, "ServiceSoap"));
    	
    	
    	call.setOperationName(new QName(targetNamespace, "Sub"));
    	if (call.isParameterAndReturnSpecRequired(call.getOperationName())){
    		call.addParameter(
    				"in0",
    				new QName("http://www.w3.org/2001/XMLSchema", "double"),
    				javax.xml.rpc.ParameterMode.IN);
    		call.addParameter(
    				"in1",
    				new QName("http://www.w3.org/2001/XMLSchema", "double"),
    				javax.xml.rpc.ParameterMode.IN);
    		call.setReturnType(
    				new QName("http://www.w3.org/2001/XMLSchema", "double"));
    	}
   	
    	/* Service invocation */
    	Object[] a = new  Object[] { new Double(2), new Double(3)};
    	double ret = (Double) call.invoke(a);
    	System.out.println(ret);
    	
    } catch(Exception e) {
    	e.printStackTrace();
    }
}

}
Será que o webservice q ta com problema?

2 Respostas

V

Amigo para começar...utilize sempre a tag '[code]' para inserir código no forum, fica mais facil para ler.
Vi que vc está inventando a roda para gerar esse cliente.
Porque vc não utiliza uma framework como Axis ou Axis2 para gerar !?! Você consegue fazer isso por ant e fica muito mais fácil...

Sobre o seu problema, se o WS está retornando 0, não temos como saber o porque pois não conhecemos a lógica de negócio do WS.
"Aparentemente" o seu código java está correto.

Abraços,

marcoskr

Bom dia amigo, sobre a tag eu não sabia, peço desculpas pelo erro.
Vou ler as regras e procurar não cometer algum erro.
Sobre o webservice, já gerei o cliente pelo axis2, funcionou certo.
Só que eu queria fazer funcionar pelo jeito acima. O webservice
está funcionando corretamente pelo teste feito no cliente do axis2.
Procuro ajuda para o jeito acima de cliente não quero fazer
por alguma ferramente framework como axis…, mas agradeço sua ajuda amigo.
Abraços.

Criado 11 de março de 2009
Ultima resposta 11 de mar. de 2009
Respostas 2
Participantes 2