0

Java Web サービスを使用しています

@WebService()
public class myWebService {

    /**
     * Web service operation
     */
    MyClass Obj ;

    @WebMethod(operationName = "webmethod1")
    @Oneway
    public void webmethod1(@WebParam(name = "serailNo") String serailNo) {

        obj = new MyClass();
        //do some operations on obj;

    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "webmethod2")
    public void webmethod2() {

        //do some operations on obj after doing intial operations in web method1

    }
}

webmethod2 で obj にアクセスできません。ヌルポインタ例外が発生しています。詳細として: オブジェクトを作成したい。そのオブジェクトは、すべての Web メソッドでアクセスする必要があります。このようにして、webmethod1 は obj に対して初期操作を実行し、続いて webmethod2 が同じ obj を使用します。どうすればこれを達成できますか

4

2 に答える 2

1

まったく新しいオブジェクトを作成している場合、できることは、webmethod1それが作成したオブジェクトを返すようにし、webmethod2その同じオブジェクトをパラメーターとして取得することです。

別のオプションはwebmethod2、パラメーターを取り込んで、変数が null でないserialNoことを確認することです。obj存在する場合は、webmethod1同じシリアル番号を渡して呼び出し、オブジェクトを作成して、何かを処理できるようにします。

于 2012-06-20T06:08:32.087 に答える
0

nullpointer を取得する理由は、Web サービスがステートフルではないためです。つまり、2 回目の呼び出し時にオブジェクトが存在しません。ステートフル Web サービスを作成することは可能ですが、それは Web サービスの種類とそれを実行しているサーバーによって異なります...

npinti が述べたように、サービスと共にオブジェクトを送信できます。オブジェクトが大きい場合など、それは好ましくないかもしれませんが。

作成されたすべてのオブジェクトを含むサーバー上にローカル キャッシュを作成し、それらを serialNo でマッピングすることができます。

于 2012-06-20T06:19:37.463 に答える