Estou tendo um problema para criar um cliente webservice.
:roll: Preciso que meu cliente:
- Instancie o WS
- Execute um método alterando o estado do objeto
- Depois execute outro método alterando o estado do objeto… etc
Na web só consegui exemplos que fazem cliente que executam apenas um método do WS.
Meu cliente executa a primeira chamada beleza, mas na hora de executar o segundo método do WS dá pau.
Por favor me ajudem 
Abaixo o código do meu cliente:
package cli;
import javax.swing.JOptionPane;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class cliRoboWSLogin{
public static void main(String[] args){
}
public void run(){
try{
String inXML="";
inXML += "<?xml version=\"1.0\"?>";
inXML += "<SFCODOC>";
inXML += " <cdMsg>SFCOLOGIN001</cdMsg>";
inXML += " <SiafisicoLogin>";
inXML += " <login>";
inXML += " <Codigo>psiafisico7</Codigo>";
inXML += " <Senha>13novembro</Senha>";
inXML += " <Ano>2007</Ano>";
inXML += " </login>";
inXML += "</SiafisicoLogin>";
inXML += "</SFCODOC>";
String urlWS = JOptionPane.showInputDialog("Digite a url:", "http://172.16.64.27:8085/axis/RobosSiafisico.jws");
//Pegar Entrada:
//inXML = JOptionPane.showInputDialog("xml:", inXML);
Object[] params = {inXML};
Service service = new Service();
//Login
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(urlWS);
call.setOperationName("SFCOLogin");
String ret = (String) call.invoke(params);
JOptionPane.showMessageDialog(null, ret);//ate aki blz
inXML = JOptionPane.showInputDialog("xml:", inXML);
//Mudpah
service = call.getService();
//call = (Call) service.createCall();
call.setOperationName("SFCOMudapah");
ret = (String) call.invoke(params);
JOptionPane.showMessageDialog(null, ret);
}catch(Exception ex){
System.out.println("--Exception: ------------------------");
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "Exception ocorreu ao executar o cliente: "+ex.getMessage());
}
}//end metodo
}//end class
Abaixo código do JWS:
import javax.activation.DataHandler;
import robots.*;
/**
* Esta classe deverá ser transformada em JWS e colocada sob o Axis
*/
public class RobosSiafisico {
//Contexto:
private FunctionsMF oFunctionsMF = new FunctionsMF();
//Metodos:
public String SFCOLogin(String inXML) {
RoboSFCOLogin robo = new RoboSFCOLogin();
return robo.executar( inXML, oFunctionsMF);
}
public String SFCOMudapah(String inXML) {
RoboSFCOMudapah robo = new RoboSFCOMudapah();
return robo.executar( inXML, oFunctionsMF);
}
public String RoboSFCOOC(String inXML) {
RoboSFCOOC robo = new RoboSFCOOC();
return robo.executar( inXML, oFunctionsMF);
}
public String RoboSFCOCT(String inXML) {
RoboSFCOCT robo = new RoboSFCOCT();
return robo.executar( inXML, oFunctionsMF);
}
}//end class
Abaixo wsdl:
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://172.16.64.27:8085/axis/RobosSiafisico.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://172.16.64.27:8085/axis/RobosSiafisico.jws" xmlns:intf="http://172.16.64.27:8085/axis/RobosSiafisico.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <!--
WSDL created by Apache Axis version: 1.4
Built on Nov 19, 2006 (02:31:34 GMT+00:00)
-->
- <wsdl:message name="SFCOLoginResponse">
<wsdl:part name="SFCOLoginReturn" type="xsd:string" />
</wsdl:message>
- <wsdl:message name="SFCOMudapahResponse">
<wsdl:part name="SFCOMudapahReturn" type="xsd:string" />
</wsdl:message>
- <wsdl:message name="SFCOMudapahRequest">
<wsdl:part name="inXML" type="xsd:string" />
</wsdl:message>
- <wsdl:message name="RoboSFCOCTResponse">
<wsdl:part name="RoboSFCOCTReturn" type="xsd:string" />
</wsdl:message>
- <wsdl:message name="RoboSFCOOCRequest">
<wsdl:part name="inXML" type="xsd:string" />
</wsdl:message>
- <wsdl:message name="RoboSFCOCTRequest">
<wsdl:part name="inXML" type="xsd:string" />
</wsdl:message>
- <wsdl:message name="RoboSFCOOCResponse">
<wsdl:part name="RoboSFCOOCReturn" type="xsd:string" />
</wsdl:message>
- <wsdl:message name="SFCOLoginRequest">
<wsdl:part name="inXML" type="xsd:string" />
</wsdl:message>
- <wsdl:portType name="RobosSiafisico">
- <wsdl:operation name="SFCOLogin" parameterOrder="inXML">
<wsdl:input message="impl:SFCOLoginRequest" name="SFCOLoginRequest" />
<wsdl:output message="impl:SFCOLoginResponse" name="SFCOLoginResponse" />
</wsdl:operation>
- <wsdl:operation name="SFCOMudapah" parameterOrder="inXML">
<wsdl:input message="impl:SFCOMudapahRequest" name="SFCOMudapahRequest" />
<wsdl:output message="impl:SFCOMudapahResponse" name="SFCOMudapahResponse" />
</wsdl:operation>
- <wsdl:operation name="RoboSFCOOC" parameterOrder="inXML">
<wsdl:input message="impl:RoboSFCOOCRequest" name="RoboSFCOOCRequest" />
<wsdl:output message="impl:RoboSFCOOCResponse" name="RoboSFCOOCResponse" />
</wsdl:operation>
- <wsdl:operation name="RoboSFCOCT" parameterOrder="inXML">
<wsdl:input message="impl:RoboSFCOCTRequest" name="RoboSFCOCTRequest" />
<wsdl:output message="impl:RoboSFCOCTResponse" name="RoboSFCOCTResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="RobosSiafisicoSoapBinding" type="impl:RobosSiafisico">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="SFCOLogin">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="SFCOLoginRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" />
</wsdl:input>
- <wsdl:output name="SFCOLoginResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://172.16.64.27:8085/axis/RobosSiafisico.jws" use="encoded" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="SFCOMudapah">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="SFCOMudapahRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" />
</wsdl:input>
- <wsdl:output name="SFCOMudapahResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://172.16.64.27:8085/axis/RobosSiafisico.jws" use="encoded" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="RoboSFCOOC">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="RoboSFCOOCRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" />
</wsdl:input>
- <wsdl:output name="RoboSFCOOCResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://172.16.64.27:8085/axis/RobosSiafisico.jws" use="encoded" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="RoboSFCOCT">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="RoboSFCOCTRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" />
</wsdl:input>
- <wsdl:output name="RoboSFCOCTResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://172.16.64.27:8085/axis/RobosSiafisico.jws" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="RobosSiafisicoService">
- <wsdl:port binding="impl:RobosSiafisicoSoapBinding" name="RobosSiafisico">
<wsdlsoap:address location="http://172.16.64.27:8085/axis/RobosSiafisico.jws" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>