在SoapUI/Postman中,我正在发送这个请求x1c 0d1x注意我是如何得到一个401未授权的,但我得到了一个响应正文。401是预期的。
现在我尝试用jax-ws发送这个消息。我用一个处理程序拦截messagereonse。我的处理程序看起来像这样:
public class SHandler implements SOAPHandler<SOAPMessageContext> {
@Override
public Set<QName> getHeaders() {
System.out.println(">>>>>>>>>>> GetHeaders");
return null;
}
@Override
public boolean handleMessage(SOAPMessageContext soapMessageContext) {
boolean isRequest = (Boolean) soapMessageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (!isRequest) {
try {
System.out.println(soapMessageContext.getMessage().getSOAPBody().getValue(););
} catch (SOAPException e) {
e.printStackTrace();
}
}
System.out.println(">>>>>>>>> Message");
return true;
}
@Override
public boolean handleFault(SOAPMessageContext soapMessageContext) {
try {
System.out.println(soapMessageContext.getMessage().getSOAPBody().getValue());
} catch (SOAPException e) {
e.printStackTrace();
}
System.out.println(">>>>>>>>>>> HandleFault");
return true;
}
@Override
public void close(MessageContext messageContext) {
System.out.println(">>>>>>>>>>> Close");
}
}
我希望从请求中得到一个返回值,但我得到了null。我只在控制台中看到以下响应:com.sun.xml.ws.client.ClientTransportException: The server sent HTTP status code 401: Unauthorized
如何获取Postman请求中显示的正文?
更多上下文信息:
向模糊端点发出请求的JAX-WS服务
@WebServiceClient(
name = "LIReceiveMessageService",
targetNamespace = "http://uic.cc.org/UICMessage",
wsdlLocation = "src/main/java/nl/rls/ci/soapinterface/UICCCMessageProcessingInboundWS.wsdl"
)
public class LIReceiveMessageService
extends Service {
....
}
我使用此Oracle指南添加的messageResolver。
LIReceiveMessageService service = new LIReceiveMessageService();
service.setHandlerResolver(new MyHandlerResolver());
1条答案
按热度按时间chy5wohz1#
在
handleMessage
方法中,可以添加以下内容