【发布时间】:2013-12-27 10:50:56
【问题描述】:
我正在使用一个通用的 Handler 类来实现许多 JAX-WS Web 服务,以验证传入 SOAP 消息的正确结构。
有没有办法获取当前消息指向的 URL,以便我可以自动从此 url 获取架构并验证消息?
【问题讨论】:
-
制作不同的方法并将第一个元素作为方法名称,以便您可以引导各种肥皂消息
标签: java jax-ws java-metro-framework
我正在使用一个通用的 Handler 类来实现许多 JAX-WS Web 服务,以验证传入 SOAP 消息的正确结构。
有没有办法获取当前消息指向的 URL,以便我可以自动从此 url 获取架构并验证消息?
【问题讨论】:
标签: java jax-ws java-metro-framework
在我的应用程序中,smc.get(JAXWSProperties.HTTP_REQUEST_URL) 返回 null。
我找到了另一种方法,希望对您有所帮助:
public class HeaderHandler implements SOAPHandler<SOAPMessageContext> {
public boolean handleMessage(SOAPMessageContext smc) {
String endpointAddress = (String) smc.get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY);
log.debug("endpointAddress " +endpointAddress);
}
}
【讨论】:
找到!!!
public class HeaderHandler implements SOAPHandler<SOAPMessageContext> {
public boolean handleMessage(SOAPMessageContext smc) {
System.out.println("URL of Endpoint" +smc.get(JAXWSProperties.HTTP_REQUEST_URL));
}
}
【讨论】:
com.sun.xml.ws.developer for JAXWSProperties 在 Java 7 中似乎不可用。还有其他选择吗?
JAXWSProperties.HTTP_REQUEST_URL 和 BindingProvider.ENDPOINT_ADDRESS_PROPERTY 都不适合我。
这就是我在 WildFly 10 (Java 7) 上的出站消息中获取 url 的方式:
public boolean handleMessage(SOAPMessageContext context) {
String url = (String) context.get(MessageContext.PATH_INFO);
...
}
【讨论】: