1

次のようなjax ws操作を呼び出そうとしています:

MyService myProxy = getProxy();
boolean gmFlagUpdated = false; 
GmFlagUpdate gmFlagUpdate = new GmFlagUpdate();
gmFlagUpdate.setPoint("Point1");
gmFlagUpdate.setMyID("ID1");
gmFlagUpdate.setGMFlag("true");

try { 
gmFlagUpdated = myProxy.setGMFlag(gmFlagUpdate);         
log.info("IsgmFlagUpdated-->"+gmFlagUpdated); 
} catch (OperationFaultException e) {
e.printStackTrace();
} catch (SystemFaultException e) {
e.printStackTrace(); 
}catch(Exception e){
e.printStackTrace();
}

問題は、次のエラーが表示されることです。

java.lang.NullPointerException
at $Proxy28.setGMFlag(Unknown Source)
at com.kunal.gm.MyServiceFacade.main(MyServiceFacade.java:84)

行 : 84 はgmFlagUpdated = myProxy.setGMFlag(gmFlagUpdate);、try ブロック内のこの行です。

奇妙なことに、同じ WS の別の操作を試したところ、完璧な応答が返ってきました。

ここで私が間違っていることはありますか? それとも、私が使用している WSDL が最近更新/変更された可能性があるためですか?

編集 :

getProxy() 実装:

public static MyService  getProxy() {
    URL url = null;
    try {
    URL baseUrl =  com.kunal.gm.service.MyService_Service.class.getResource("/com/kunal/gm/");
    url = new URL(baseUrl, "file:./MyWSDL.wsdl");
    } catch (MalformedURLException malformedURLException) {
    System.out.println(malformedURLException.toString());
    }

    QName serviceName = new QName("http://com.host.provider/deploy/service","MyService");
    MyService_Service service = new MyService_Service(url, serviceName);
    MyService myPort = service.getPort();
    BindingProvider bp = (BindingProvider) myPort;
    bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,"https://endpoint.com.myWSDL");
    bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY,"username");
    bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY,"password");
return myPort;
}

提案/ヘルプは大歓迎です。

4

0 に答える 0