好。所以我接管一个使用Groovy的非常古老的系统,这个应用程序通过其配置文件连接到第三方Web服务,条目如下:(这是为prd)
webService.wsdlUrl = "jar:file:/lib/MyWebService.jar!/META-INF/wsdl/MyServices_live.wsdl"
它有自己的qa和prd的groovy配置文件集。 Qa看起来像这样:
webService.wsdlUrl = "jar:file:/lib/MyWebService.jar!/META-INF/wsdl/MyServices_qa.wsdl"
这些MyServices_live.wsdl和MyServices_qa.wsdl文件包含实际Web服务URL的路径(分别用于prd和qa),这是两个实例需要替换的路径。
我已经有了新的网址。那我该怎么办?我没有足够的经验这样做,所以我不得不做一些研究。显然,我可以使用“wsimport”连接到新的Web服务URL并将?wsdl附加到此URL的末尾,这样我就可以生成一个jax-rs Web服务客户端。我能够生成一组java代码,我最终了解到他们认为问题已经解决了。我只需要编译这些java代码并对类进行jar,所以我将有一个更新的MyWebService.jar。
现在,我意识到我所做的,wsdl参数嵌入在代码中
@WebServiceClient(name = "Services", targetNamespace = "http://blahblah/", wsdlLocation = "https://newhostname.com/Service?wsdl")
通过这种方法,我会创建2个罐子,1个用于prd,1个用于qa,这不是最理想的做法。我们希望通过使用参数来保留以前控制Web服务客户端(jar内部)指向的位置的能力(例如,就像这里...... wsdl被指定为jar:file:/lib/MyWebService.jar! /META-INF/wsdl/MyServices_live.wsdl)。
同样,为了突出显示架构,应用程序在Groovy中运行,它使用jar文件来访问某些第三方服务。
我还没有真正完成任何Groovy开发,所以我希望尽可能不触及任何Groovy代码。
你知道我怎么能解决这个问题吗?