2016-09-27 92 views
0

嗨,我正在为肥皂调用一个java项目。我从服务器提取SOAP WSDL文件并将其包含在我的eclipse java项目中。在用于从服务器生成令牌的soap方法之一中,我需要将用户名和密码传递给名为logon的soap方法,然后返回会话令牌登录方法使用“mode = Mode.OUT”和一些持有者元素返回会话令牌。查询\是从肥皂调用获得价值

 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); 

如果我写这样的代码:

String res = 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); 

您将在“pstrSessionToken.value”获得的价值

0

你的方法,其中登录时可能不会返回一个字符串值。

+0

是它调用类“LogonResponse”返回值。 –

+0

请修改您的帖子并提供完整的代码 – enigma969

+0

完整的代码发布。 –