我已经编写了一个 java webservice,将它部署在我的 tomcat 上,并通过我的 webbrowser 访问了服务 WSDL,一切看起来都很好。下一步是生成代理类,客户端可以使用它与网站进行通信。这就是我接下来所做的:
假设我的 wsdl 可以通过以下方式访问:http://localhost:8080/testSvc/testSvc?wsdl
使用 wsimport 工具,我使用以下命令生成代理: $>wsimport http://localhost:8080/testSvc/testSvc?wsdl
问题是 localhost:8080 在生成的类中被硬编码,如果我将服务部署在 8080 以外的端口上,则客户端无法访问它,因为客户端仍会尝试访问端口 8080 上的服务。
有没有以端口号不是硬编码的方式开发代理类?这样我们就可以在任何端口上部署服务?
我尝试更新 ENDPOINT_ADDRESS_PROPERTY 但这没有用,因为代码在实例化代理类的实例时失败。它从来没有真正达到我可以覆盖它已经从代理类准备好的 ENDPOINT_ADDRESS 的地步。