java 做 webservice 在以数组为参数时,发布wsdl 属性问题
java做webservice在以数组为参数时,发布出来的WSDL中为啥没有自动生成<elementminOccurs="0"maxOccurs=“unbounded”这...
java 做 webservice 在以数组为参数时,发布出来的WSDL 中为啥没有自动生成<element minOccurs="0" maxOccurs=“unbounded” 这些属性?怎么控制生成 这些属性?
wsdl转SOAP时 数组生成
<Material xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="m0:string[1]"><m0:item0 xsi:type="m0:string" id="" href=""/>
</Material> 代码,
这里 SOAP-ENC:arrayType="m0:string[1]" 为什么会把Material 数组限制成1个元素?在服务端我并没有做这样的限制。 展开
wsdl转SOAP时 数组生成
<Material xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="m0:string[1]"><m0:item0 xsi:type="m0:string" id="" href=""/>
</Material> 代码,
这里 SOAP-ENC:arrayType="m0:string[1]" 为什么会把Material 数组限制成1个元素?在服务端我并没有做这样的限制。 展开
2个回答
展开全部
正常的调用webservice接口返回的是简单的字符串类型的数据,如果想要返回复杂类型或者是自定义的数据类型,需要做特殊的处理。
比如定义一个IMyService.java,其中的接口函数是:
public List<Entity> getLocalEntityList();
这时需要建立一个IMyService.aegis.xml与IMyService.java放在同一目录下,
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="getLocalEntityList">
<!-- 自定义的实体的具体路径-->
<return-type componentType= "com.xxx.xxxx.xxxxx.Entity" />
</method>
</mapping>
</mappings>
希望对你有用。。。
比如定义一个IMyService.java,其中的接口函数是:
public List<Entity> getLocalEntityList();
这时需要建立一个IMyService.aegis.xml与IMyService.java放在同一目录下,
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="getLocalEntityList">
<!-- 自定义的实体的具体路径-->
<return-type componentType= "com.xxx.xxxx.xxxxx.Entity" />
</method>
</mapping>
</mappings>
希望对你有用。。。
追问
您好 我说的是 以数组为方法参数, 自动生成wsdl时候,会在数组参数的描述中
但是现在生成的 没有这个参数minOccurs="0" maxOccurs="unbound"
展开全部
minOccurs="0" maxOccurs="unbound"这个参数值的是这个元素标签最少有0个,可以有多个unbound值的不限,至于楼上说真是炉头不对马嘴,不知道从哪拷贝了一段,真是误人子弟,至于你说的以数组为参数,webservice为考虑到平台和语言之间的差异,所以只支持基本数据类型
更多追问追答
追问
参数的意思我明白,只是现在某个客户端需要这个2个属性才能正常调用我这个服务端,所以请问下 这个属性通过什么样的操作可以生成出来。。。。
追答
你是使用什么方式发布的webservice是cxf自动发布还是什么?
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询