为什么要去掉WS:Policy
在安装了PI之后,由SAP发布的WebService也和从前有所不同。
之所以要去掉WSDL中的WS:Policy,是因为目前用来产生java客户端的开源项目都对WS:Policy标签支持得不好,曾经尝试过通过WSDL生成Java Stub的开源Java项目有:Axis-1.4、Axis2-1.5.1、xfire-1.2.6、apache-cxf-2.2.8。其中Axis2能够生成可以执行的Java Stub代码,但解析某些Policy标签的时候仍然报错,虽暂时不影响使用,但始终是一个隐患,不建议使用;其余开源项目均不能根据WSDL生成可用的Java代码。
所以,当不影响业务使用的情况下,暂时不适宜使用带有WS:Policy标签的WSDL。
如何去掉WS:Policy
- SOAMANAGER:打开管理界面
- 选择“Business Administration”中的Web Service Administration
- 查找Z*开头的Service,选中要查看的Service,点击Apply Selection
- 点击“Open WSDL document for selected binding”可以查看WSDL
图中标识Service:EndPoint的地方是通过手工配置后生成的Service和EndPoint。如果没有配置EndPoint,则不能打开WSDL。 - 在URL中可以看到“ws_policy”的字样
-
将“ws_policy”替换成“standard”,重新查看WSDL即可
附:
安装PI之前创建WebService的方法:http://blog.youkuaiyun.com/longgerr/archive/2010/05/25/5623418.aspx
安装PI之后创建WebService的方法:
关于ws:policy的说明:http://msdn.microsoft.com/en-us/library/ms996497.aspx