问题 我知道这个问题,问题是命名空间,但是,不知道如何解决它。
这是我的示例代码。
SoapConnection globalUtilConnection = Connector.newConnection("","");
globalUtilConnection.getConfig().setAuthEndpoint(updatedServerURL.toString());
globalUtilConnection.getConfig().setServiceEndpoint(updatedServerURL.toString());
globalUtilConnection.setSessionHeader(activeSessionId);
globalUtilConnection.myWebServiceMethod();
**这对我的开发者组织来说很好但是,它在Package org **中引起了一个问题
**注意:** WSDL文件是从开发人员组织生成的。
答案 0 :(得分:1)
那么,你有一个使用webservice
关键字的Apex类将方法公开为SOAP Web服务吗?
当您从开发人员版组织中将Apex类带到包装组织时,它将获取包装组织的命名空间。这会更改您需要调用的URL。
打包组织的名称空间将出现在WSDL中的几个位置。
xmlns:tns
属性中
的xmlns:TNS = “http://soap.sforce.com/schemas/class/orgNamespace/TestClass”
targetNamespace
属性中
的targetNamespace = “http://soap.sforce.com/schemas/class/orgNamespace/TestClass”
soap:address
location
属性中
位置= “https://na5.salesforce.com/services/Soap/class/orgNamespace/TestClass”
端点位置应该相当容易处理。您只需更改端点URL即可在路径中包含组织命名空间。
targetNamespace和tns别名将难以解决。最简单的选择可能是使用更新的命名空间从WSDL重新创建jar。