或者是这样:<testResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<Time xsi:type="xsd:string" >11:04:375</Time>
<Random xsi:type="xsd:string" >random</Random>
</testResponse>去掉了关于命名空间的定义
<Time xsi:type="xsd:string" >11:04:375</Time>
<Random xsi:type="xsd:string" >random</Random>
</testResponse>去掉了关于命名空间的定义
<parameter mode="out" name="Time"/>
<parameter mode="out" name="Random"/>
</operation>
请问在server-config里面关于operation的相关配置说明在哪里可以看得到?现在还有一点小问题:
返回的参数名称已经定义好了,如何继续配置参数的返回类型?现在默认的是:
<Time xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">timestampabc</Time>
返回的参数类型怎么是soapenc:string的呢? 我想返回的是xsd:string的该如何配置?另外,昨天还有一个小问题:我只想返回两个参数:random,time,但是现在返回的却多了一个参数,我给你看看服务器段代码:
public String test(StringHolder timestamp, StringHolder random)
{
timestamp.value = "timestampabc";
random.value = "abcrandom";
return random.value;
}因为我使用了return random.value,导致返回的soap消息里面多了这样一个返回参数:
<testReturn xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">abcrandom</testReturn>我不想这样。我就必须删除return.....但是如果我删除return,服务器段的文件就无法编译通过啊。如果我的这个方法是void没有返回,那也会出错。大虾帮忙看看,这个问题解决了,俺就可以快快乐乐过中秋了,也祝大家所有人中秋愉快,合家幸福!
如果我要在test方法里面增加一个参数,如:
public String test(StringHolder timestamp, StringHolder random,String Username)客户端在访问这个接口的时候需要输入Username。那么我的这个test方法该如何写?我尝试过如以上的方法写,并且在客户端注明了访问时要带上一个username过来。但是总是报错,提示:The OperationDesc for test was not synchronized to a method of test.
返回值可以为空,也可以不为空,一般如果参数返回值的,接口方法的返回值可以设为一个整数,表示这次调用动作本身是否成功。
另外,如果需要校验客户端的身份,在方法本身里传用户名和密码不是一个好的方案,因为一个Web Service可能不止一个接口,验证信息写在方法里十分冗余。应该在更高一层验证,比如可以用HTTP Basic Authentication验证,或者为了提高效率单独做一个方法login() 保存Session等。
就拿这个例子来看:
public String test(StringHolder timestamp, StringHolder random)
{
timestamp.value = "timestampabc";
random.value = "abcrandom";
return random.value;
}我必须指明一个方法类型,可以String,也可以是你说的int,但最后必须要有一个return。
那我这个retrun该什么呢?我无论写了什么,都会在返回的message中多增加一条返回参数(return得值)
我该如何做?老大