Передать объект в веб-сервис - PullRequest
2 голосов
/ 22 марта 2011

у меня

веб-сервис:

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 голосов
/ 22 марта 2011

Гораздо проще просто передать / вернуть примитив - в вашем случае, передать / вернуть 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 - то есть ваша служба примет XML-представление numb и вернет XML-представление результата.

Имейте в виду, чтопроблема у вас есть ваш звонок на stub.getNumber(nr);.Я понял, что у вашего NumberStub класса нет метода с именем getNumber, который принимает numb в качестве аргумента.

...