我可以在WSDL相对于WSDL位置或至少相对于服务器的soap:地址位置吗?
例如我想写:
例如我想写:
<soap:address location="https://exampleserver.com/axis2/services/ExampleService" />
如:
<soap:address location="/axis2/services/ExampleService" />
这将可以更快地部署到多个服务器,如测试服务器.此外,在axis2c的情况下,如果我希望使用HTTP或HTTPS生命周期的服务,开发人员使用我的服务变得更加困难,因为它们不能简单地从它的默认位置“WSDL”导入WSDL.
解决方法
WSDL向客户端描述与Web服务交互所需的消息格式,类型,参数等.然后,这些工具就像
WSDL2C这样的工具来生成交互所需的代码.
但即使您的服务在HTTP或HTTPS上公开,客户端存根代码也是一样的.您不会为每个端点地址重新生成客户端存根.客户端保持不变,这是更改的接入点.
该地址不应该在生成的客户端代码中被硬编码,它必须是客户端应用程序内的可配置URL.
当然,你有一个在WSDL内部指定的URL,当您将Web服务部署到开发人员服务器中,然后进行分段和下一步生产时,这是一个麻烦.每个环境中的端点将不同(对于HTTP HTTPS,可能会乘以2),但是在这一点上,您的开发人员不会受到影响,因为您不会重新生成代码.
当访问Web服务时,即使相对于某些东西或绝对,仍然会有不同的地址(对于dev,staging和prod服务器).所以我不知道如何在WSDL中有相对地址是有帮助的,因为您仍然需要将访问点管理到客户端配置中.