Microsoft CRM 2015 SOAP接口引入了新的命名空间,但我在生成的OrganisationServiceStub中找不到它?

时间:2015-10-14 13:46:29

标签: wsdl axis wsdl2java xrm

我们几年来一直在使用Microsoft CRM的SOAP接口成功,但随着7.1版的引入,我们在SOAP响应条目中看到了这样的

<b:KeyAttributes xmlns:d="http://schemas.microsoft.com/xrm/7.1/Contracts" />

当我检查服务端点的WSDL时,我可以看到声明,但是当我想生成一个新的OrganisationServiceStub时,不会选择此命名空间。这是我使用的命令

D:\Software\axis2-1.6.2-bin\axis2-1.6.2\bin>WSDL2Java -uri https://microsoft.crm.dynamics.com/XRMServices/2011/Organization.svc?wsdl -p java2crmpack -s -o D:\XRM\Client

当我们调用(解析soap响应)webservice时,对现有代码的影响是错误的

org.apache.axis2.databinding.ADBException: Unexpected subelement {http://schemas.microsoft.com/xrm/2011/Contracts}KeyAttributes

当然我开始隔离这个特定的命名空间并做一些手动编码,但我认为这应该由Axis工具选择,对吧? 我确定生成.java文件(我保留了一个全新的文件夹: - )

2 个答案:

答案 0 :(得分:0)

7.1发布后我们也遇到了这个问题。我通过重新生成存根类来修复它。 Microsoft网站提供了有关如何执行此操作的分步说明:https://msdn.microsoft.com/en-us/library/jj602979%28v=crm.5%29.aspx。一旦我重新生成了存根并替换了旧存根,一切都恢复正常。希望这有帮助!

答案 1 :(得分:0)

当你说7.1时,你参考jdk版本??

WSDL2Java -uri https://disco.crm.dynamics.com/XRMServices/2011/Discovery.svc?wsdl -p java2crmpack -s -o c:\ projects \ Java2CRMCRUD

WSDL2Java -uri https://yourcrmonlineinstance.crm.dynamics.com/XRMServices/2011/Organization.svc?wsdl -p java2crmpack -s -o c:\ projects \ Java2CRMCRUD

那是什么意思?

我也删除了urn:namespace并没有,它对我不起作用...... :(