我们已经公开了一个部署在负载均衡器后面的 Tomcat 实例上的 Web 服务。负载平衡器仅允许 HTTPS 流量,但 Jax-ws 端点指向 HTTP WSDL url 而不是 HTTPS。当客户端访问负载均衡器 HTTPS URL 时,它会被重定向到 HTTP,并且由于流量是 HTTP 在 LB 上被阻止,客户端会收到错误,因为 WSDL 不可访问。
sun-jaxws.xml 或 webservice 注释中是否有任何配置来指定告诉 JAX-WS 公开 HTTPS url 而不是 HTTP。
下面是我的配置:
sun-jaxws.xml:
<?xml version="1.0" encoding="UTF-8"?>
<endpoints
xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime'
version='2.0'>
<endpoint
name='/TestService'
implementation='com.test.service.TestServiceImpl'
url-pattern='/TestService' />
Annotation Config On WebService Impl class:
@WebService(serviceName="TestServiceImpl",
portName="TestService",
endpointInterface = "com.test.service.TestService",
targetNamespace="http://test.com"
)
@HandlerChain(file = "handlers.xml")
@MTOM
@XmlAccessorType(XmlAccessType.PROPERTY)
public class TestServiceImpl implements TestService{
//Implementation
}
如果有人能指出我正确的方向,那就太好了。
不同场景下的解决方案也请阅读评论