将对象传递给webservice

时间:2011-03-22 10:03:40

标签: java web-services axis2

我有

网络服务:

package axis2;
public class Number {
    public numb getNumber(numb nr){
        return nr;
}
}
班级麻木:

package axis2;
public class numb {
    private int val;

    public numb(int val)
    {
            this.val = val;
    }

    public int getVal() {
            return val;
    }

    public void setVal(int val) {
            this.val= val;
    }
}

如何作为参数传递给对象服务并返回对象?

package axis2;
import java.rmi.RemoteException;
import axis2.NumberStub.GetNumberResponse;
public class ServiceTest {
    public static void main(String[] args) throws RemoteException   {
        numb nr=new numb(4);
        NumberStub stub = new NumberStub();
        GetNumberResponse res = stub.getNumber(nr);
        System.out.println(res.get_return());
        }
}

我收到错误:

The method getNumber(NumberStub.GetNumber) in the type NumberStub is not applicable for the arguments (numb)

当我尝试这个时。

1 个答案:

答案 0 :(得分:0)

传递/返回原语要容易得多 - 在您的情况下,传递/返回int,并在内部使用numb。即:

public class Number {
    public int getNumber(int nr){
        numb n = new numb(nr);
        // do your thing here...
        return n.getVal ( );
    }
}

也就是说,如果你真的想要传递对象,可以选择JAXB。基本上,使用JAXB,您可以对XML进行编组/解组对象 - 也就是说,您的服务将接受numb的XML表示,并返回结果的XML表示。

请注意,您遇到的问题是致电stub.getNumber(nr);。我收集到您的NumberStub类没有名为getNumber的方法,该方法以numb为参数。