2012-03-28 63 views
1

我已经使用在线工具从WSDL生成了Apex类,但生成的代码在多个位置硬编码了服务url。我希望代码在配置对象中查找服务url,以便我可以将它指向临时服务器,然后将其切换到现场而无需重新生成代码。来自WSDL的新Apex代码

我应该查找哪个生成的类要使用,还是应该编辑生成的代码,以便查找服务URL或是否有参数化服务URL的方法?

回答

4

我会更新生成的代码。我之前完成了这个任务,对Web服务调用没有影响。

您可能想要考虑使用Custom Settings(在这种情况下,列表设置可能是最好的)来存储您的服务URL。

使用自定义设置,它会是这个样子:

List<WebServiceSettings__c> wss = WebServiceSettings__c.getall().values(); 
//... other code ... 
public String endpoint_x = wss[0].URL__c; 

您需要更改Web服务URL的所有引用在生成的代码wss[0].URL__c

+0

如何在列表中引用URL__c?它不应该是wss [0] .URL__c?此外,当您从WSDL进行重新生成时,是否可以执行字符串替换以便用代码查找来更新所有硬编码的URL引用? – 2012-03-28 21:28:57

+0

感谢您的支持(关于List参考);我更新了答案。您应该可以执行搜索并替换以更改生成的代码中的引用,但我没有测试过。我只手动更改引用。 – 2012-03-28 21:38:32

+0

我有它的工作马修。我只需手动更改所有硬编码的URL,然后在查找自定义设置对象的类上调用静态方法。我甚至在一个地方添加了一个位于URL和服务文件之间的“路径”变量。谢谢! – 2012-03-29 14:26:51