最近在项目中使用Silverlight(2.0 3.0beta),服务端是Java的,WebService引擎使用的axis1.1,在使用过程中发现对于在axis中发布的WebService在VS2008中引用时无法正确产生代理类,只有接口没有方法,给调用服务方法带来不便。
后来研究发现,原来是WebService风格的问题引起,axis缺省使用rpc风格的WebService,而.NET中缺省使用document风格的(难道Silverlight只能处理document风格的?),而axis本身是支持多种风格的WebService的,只需要在发布配置文件中明确指定style属性就行了,就象下面这样定义配置:
<service name="YourServiceName" provider="java:RPC" style="document">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="your class full name"/>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="sendXMLDeclaration" value="true"/>
</service>
WebService有多种风格,包括rpc,document, wrapped等,上面只是一个示例配置,可以根据实际情况修改style属性。
本文介绍了解决Silverlight在跨平台调用Java WebService时遇到的问题,主要是由于WebService风格不同导致的代理类生成错误。通过调整WebService配置为document风格解决了此问题。

被折叠的 条评论
为什么被折叠?



