2016-09-27 10 views
0

こんにちは、私はsoap呼び出しのJavaプロジェクトに取り組んでいます。私はサーバーから石鹸のWSDLファイルを抽出し、私のEclipse Javaプロジェクトに含まれています。サーバーからトークンを生成するためのsoapメソッドの1つ私はログオンと呼ばれるsoapメソッドにユーザー名とパスワードを渡す必要があります。ログオンメソッドは "mode = Mode.OUT"とsome holder要素を使用してセッショントークンを返します。soap callから値を取得

String res = token_soap.logon(sessiontoken, strLogin, strPassword, elemParameters, pstrSessionToken, pSessionInfo, pstrSecurityToken); 

それはエラー「型の不一致を:空の文字列に変換することはできません」と表示:クエリ\は、私は次のようなコードを記述する場合

 String sessiontoken =""; 
     String strLogin="admin"; 
     String strPassword="password"; 
     Element elemParameters= null ; 
     Holder<String> pstrSessionToken = new Holder<String>(); 
     Holder<Element> pSessionInfo = new Holder<Element>(); 
     Holder<String> pstrSecurityToken = new Holder<String>(); 

token_soap.logon(sessiontoken, strLogin, strPassword, elemParameters, pstrSessionToken, pSessionInfo, pstrSecurityToken); 

です。私はそれが返すpstrSessionTokenの値を収集することができません。

私の完全なコードは次のとおりです。ログオンはおそらく文字列値を返しませんが発生

public static String s_tokencall(){ 
        XtkSession token = new XtkSession(); 
     SessionMethodsSoap token_soap = token.getSessionMethodsSoap(); 

     String sessiontoken =""; 
     String strLogin="admin"; 
     String strPassword="password"; 
     Element elemParameters= null ; 
     Holder<String> pstrSessionToken = new Holder<String>(); 
     Holder<Element> pSessionInfo = new Holder<Element>(); 
     Holder<String> pstrSecurityToken = new Holder<String>(); 
     String res = token_soap.logon(sessiontoken, strLogin, strPassword, elemParameters, pstrSessionToken, pSessionInfo, pstrSecurityToken); 
     System.out.println(pstrSecurityToken); 
     return null;} 

答えて

0

これで、別のメソッドでStringホルダーを宣言する必要がありました。ログオン関数は、呼び出し時にString変数を更新します。この関数は何も返しませんが、実行時に変数を更新します。

XtkSession token = new XtkSession(); 
      SessionMethodsSoap token_soap = token.getSessionMethodsSoap();   
      String sessiontoken = ""; 
      String strLogin = "admin"; 
      String strPassword = "password"; 
      xtk.session.Element elemParameters = new xtk.session.Element(); 
      Holder<String> pstrSessionToken = new Holder<String>(); 
      Holder<xtk.session.Element> pSessionInfo = null; 
      Holder<String> pstrSecurityToken = new Holder<String>(); 

      token_soap.logon(sessiontoken, strLogin, strPassword, elemParameters, pstrSessionToken, pSessionInfo, pstrSecurityToken); 

あなたははい、それは値を返すためにクラス「LogonResponseを」呼び出す「pstrSessionToken.value」

0

あなたの方法。

+0

で値を取得します。 –

+0

投稿を編集して完全なコードを入力してください – enigma969

+0

完全なコードが掲載されています。 –