Java 如何知道在web服务调用中是否通过HTTPS连接?

Java 如何知道在web服务调用中是否通过HTTPS连接?,java,web-services,Java,Web Services,使用Jetty 7.0.2。在80和443端口上侦听的服务。在一个特殊的API中,我们需要连接到另一个服务器,该方案由传入调用决定:如果传入调用是HTTP,那么我们将通过HTTP到达另一个服务器;如果传入呼叫是HTTPS,那么我们将通过HTTPS到达另一台服务器 web服务可以在中插入WebServiceContext对象,我们以前使用: MessageContext ctx = (WebServiceContext)wsContext.getMessageContext(); String r

使用Jetty 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没有被注入。还有其他解决方法吗?

我不太确定jetty和您正在运行的web服务类型。但是如果它在内部使用servlet,那么我相信HttpSerlvetRequest.isSecure()应该会对您有所帮助

布尔isSecure()

返回一个布尔值,指示此请求是否使用 安全通道,如HTTPS


我不太确定jetty和您正在运行的web服务类型。但是如果它在内部使用servlet,那么我相信HttpSerlvetRequest.isSecure()应该会对您有所帮助

布尔isSecure()

返回一个布尔值,指示此请求是否使用 安全通道,如HTTPS


对不起,我没有说清楚……我使用的是嵌入式Jetty,使用的是web应用上下文,没有可用的servlet上下文。Jetty不会将servlet注入MessageContext。有人知道怎么做吗?对不起,我没说清楚……我使用的是嵌入式Jetty,使用的是web应用上下文,没有可用的servlet上下文。Jetty不会将servlet注入MessageContext。有人知道怎么做吗?