有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java获取在处理程序上使用的端点的Url(JAXWS)

我正在使用一个公共处理程序类实现许多JAX-WSWeb服务,以验证传入SOAP消息的正确结构

是否有某种方法可以获取当前消息指向的URL,以便我可以从该URL自动获取架构并验证消息


共 (3) 个答案

  1. # 1 楼答案

    在我的应用程序中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);
        }
    }
    
  2. # 2 楼答案

    找到了

    public class HeaderHandler implements SOAPHandler<SOAPMessageContext> {
    
    public boolean handleMessage(SOAPMessageContext smc) {
        System.out.println("URL of Endpoint" +smc.get(JAXWSProperties.HTTP_REQUEST_URL));
     }
    }
    
  3. # 3 楼答案

    这两种情况都不存在。HTTP_请求_URL或BindingProvider。ENDPOINT_ADDRESS_PROPERTY为我工作

    这就是我如何在WildFly 10(Java 7)上获得出站消息中的url:

    public boolean handleMessage(SOAPMessageContext context) {
        String url = (String) context.get(MessageContext.PATH_INFO);
        ...
    }