Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从SpringWS拦截器获取请求参数_Java_Web Services_Jaxb_Spring Ws - Fatal编程技术网

Java 从SpringWS拦截器获取请求参数

Java 从SpringWS拦截器获取请求参数,java,web-services,jaxb,spring-ws,Java,Web Services,Jaxb,Spring Ws,我将JAXB2与SpringWS一起使用,我有一个定向到特定负载的拦截器,它工作正常 这里我的要求是从拦截器的handleRequest方法中读取请求参数。我知道这应该是相当直截了当的。但是,无法找到读取请求参数的方法。目前,我的HandlerRequest方法如下所示 @Override public boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception {

我将JAXB2与SpringWS一起使用,我有一个定向到特定负载的拦截器,它工作正常

这里我的要求是从拦截器的handleRequest方法中读取请求参数。我知道这应该是相当直截了当的。但是,无法找到读取请求参数的方法。目前,我的HandlerRequest方法如下所示

@Override
public boolean handleRequest(MessageContext messageContext, Object endpoint)
    throws Exception {

    boolean proceed = true;

    SaajSoapMessage saajSoapMessage = 
                    (SaajSoapMessage) messageContext.getRequest();

    SOAPMessage soapMessage = saajSoapMessage.getSaajMessage();

    Document doc = saajSoapMessage.getDocument();

    Element element = doc.getElementById("request");
}
MyEndpoint类的相关部分是

@PayloadRoot(namespace = NAMESPACE, localPart = "confirOrderRequest")
public @ResponsePayload ConfirmOrderResponse handleConfirmOrder(
    @RequestPayload ConfirmOrderRequest confirmOrderRequest) {

     ...........
}

在这里,我的要求是获取interceptor HandlerRequest方法中的
ConfirmOrderRequest
附带的orderId,有没有办法直接执行此操作,或者我需要为此执行一些XML解析?

@VitualTroll,这对我有所帮助,谢谢

但这个问题的答案是不正确的(至少在我的情况下)。我的新
handleRequest()
方法的主体如下所示。希望这能为以后的其他人节省一些时间。这是我的春豆

  @Autowired
  private Jaxb2Marshaller jaxb2Marshaller;

  @Override
  public boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception {

    boolean proceed = true;

    SaajSoapMessage saajSoapMessage = (SaajSoapMessage) messageContext.getRequest();


    SoapBody requestBody = saajSoapMessage.getSoapBody();
    Object obj = jaxb2Marshaller.unmarshal(requestBody.getPayloadSource());


    if (obj instanceof ConfirmOrderRequest ) {
      ConfirmOrderRequest cor = (ConfirmOrderRequest ) obj;

      String orderId = cor.getOrderId();

      ...........
      .......
    }
  .....
 }
这可能会有帮助