Fala galera,
Estou fazendo um webservice exemplo (little exemplo
) e está ocorrendo a seguinte exception:
No Client:
org.apache.axis2.AxisFault: teste.dyna.server.Objeto
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:343)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at teste.dyna.server.LittleStub.getRetorno(LittleStub.java:208)
at teste.dyna.server.LittleClient.liitleGetRetorno(LittleClient.java:34)
at teste.dyna.server.LittleClient.main(LittleClient.java:19)
E no server a seguinte exception, ao fazer a chamada:
Exception occurred while trying to invoke service method getRetorno
org.apache.axis2.AxisFault: teste.dyna.server.Objeto
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
at org.apache.axis2.engine.DefaultObjectSupplier.getObject(DefaultObjectSupplier.java:29)
at org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:345)
at org.apache.axis2.databinding.utils.BeanUtil.processObject(BeanUtil.java:655)
at org.apache.axis2.databinding.utils.BeanUtil.ProcessElement(BeanUtil.java:603)
at org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:535)
at org.apache.axis2.rpc.receivers.RPCUtil.processRequest(RPCUtil.java:153)
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:188)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:98)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageRec
No servidor, possuo a seguinte classe, que é encarregada de retornar minhas chamadas do ws:
package teste.dyna.server;
public class Little {
public Objeto getRetorno( Objeto obj ) {
Random r = new Random();
int rand = r.nextInt();
Objeto out = new Objeto( obj.getKey(), obj.getValor() + rand );
System.out.println( "retorno obj: " + obj.getKey() + " - " + obj.getValor() + " valor: " + rand );
return out;
}
public Objeto getUmRetorno( Integer numero ) {
Objeto o = new Objeto( "chave1", numero.doubleValue() + 50 );
System.out.println( "getUmRetorno obj: " + o.getKey() + " - " + o.getValor() + " valor original: " + numero.intValue() );
return o;
}
}
Minha classe POJO objeto é a seguinte:
package teste.dyna.server;
public class Objeto {
private String key;
private double valor;
public Objeto( String s, double d ) {
key = s;
valor = d;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
}
Minha classe client:
public class LittleClient {
private static String endereco = "http://192.168.10.12/axis2/services/Little";
public static void main(String[] args) {
try {
LittleClient lc = new LittleClient();
lc.liitleGetRetorno();
//lc.liitleGetUmRetorno();
} catch (Exception e) {
e.printStackTrace();
}
}
public void liitleGetRetorno() throws RemoteException {
LittleStub stub = new LittleStub( endereco );
LittleStub.Objeto obj = new LittleStub.Objeto();
obj.setKey( "key4" );
obj.setValor( 15 );
LittleStub.GetRetorno retorno = new LittleStub.GetRetorno();
retorno.setObj( obj );
LittleStub.GetRetornoResponse resp = stub.getRetorno( retorno );
System.out.println( "Resultado: " +resp.get_return().getKey() + " - " + resp.get_return().getValor() );
}
public void liitleGetUmRetorno() throws RemoteException {
LittleStub stub = new LittleStub( endereco );
LittleStub.GetUmRetorno getUm = new LittleStub.GetUmRetorno();
getUm.setNumero( 150 );
LittleStub.Objeto ob = stub.getUmRetorno( getUm ).get_return();
System.out.println( ob.getValor() );
}
}
Ao chamar o metodo liitleGetRetorno(); no qual passo um Objeto para o ws gera as exceptions que acima mostrei. Porém na minha outra chamada ( liitleGetUmRetorno(); ) onde passo um número inteiro e é retornado um Objeto, funciona perfeitamente.
Alguém aí tem alguma idéia de qual é o problema?
Ja tentei de tudo, mas ate agora não consegui descobrir qual é o problema.
:x

