1

使用码头 7.0.2。监听 80 和 443 端口的服务。在一个特殊的 API 中,我们需要连接到另一个服务器,具体的方案由来电决定:如果来电是 HTTP,那么我们将通过 HTTP 到达另一个服务器;如果来电是 HTTPS,那么我们将通过 HTTPS 到达另一台服务器。

Web服务可以在其中注入一个WebServiceContext对象,我们曾经使用过:

MessageContext ctx = (WebServiceContext)wsContext.getMessageContext();
String requestUrl = ctx.get("com.sun.xml.ws.transport.http.servlet.requestURL");

然后我们解析 url 以知道它是否是 https/http。

但是,当我们使用 Jetty 时,我们发现 requestURL 没有被注入。还有另一种解决方法吗?

4

1 回答 1

1

我不太确定您正在运行的码头和网络服务类型。但是,如果它在内部使用 servlet,那么我相信 HttpSerlvetRequest.isSecure() 应该可以帮助您。

布尔 isSecure()

返回一个布尔值,指示此请求是否使用安全通道(例如 HTTPS)发出。

于 2013-08-19T05:45:31.733 回答