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

Microsoft CRM 2015 SOAP interface introduces new namespace, but I cannot find it in the generated OrganisationServiceStub?

我们已经成功使用 Microsoft CRM online 的 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 响应)web 服务时,对现有代码的影响是一个错误

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

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

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

你说的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: 命名空间什么的,它对我不起作用...:(