您好我正在研究一个用于肥皂调用的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);
然后显示错误&#34;类型不匹配:无法从void转换为String&#34;。我无法收集它将返回的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 :(得分:0)
发生登录的方法可能不会返回字符串值。
答案 1 :(得分:0)
现在我们需要使用不同的方法声明String holder,并且logon函数将更新调用时的String变量。此函数不会返回任何内容,但会在执行时更新变量。
bs=512 seek=2
您将获得“pstrSessionToken.value”
中的值