所以,我有一个公开 Web 服务端点的路由。收到请求后,我将一些信息发送到一些队列,我想将响应返回给原始调用者。响应是一个可以有 4 个值的枚举(OK,NULL,RPT,NOK)
。
我可以在soapUI 中获得响应,但它不在有效的SOAP 信封中。这意味着当在 Java 或 .Net 中处理响应时,会引发异常,说明没有有效的 Envelope 命名空间。
如何保证发送的响应是 SOAPMessage?
要生成我的回复消息,我有这个方法:
public OnClientEventResponse process(Message message){
if(message.getBody().toString().contains("OnClientEventResponse")){
return (OnClientEventResponse) message.getBody();
}
OnClientEventResponse resp = new OnClientEventResponse();
resp.setReturn(Response.OK);
return resp;
}
在soapUi我得到这个:
<onClientEventResponse>
<Response>OK</Response>
</onClientEventResponse>
但我需要这样的东西:
<soap:Envelope xmlns:soap="blabla/soap/envelope">
<soap:Headers/>
<soap:Body>
<onClientEventResponse>
<Response>OK</Response>
</onClientEventResponse>
<soap:Body>
<soap:Envelope>
我的 Webservice 接口类是:
@WebService(name = "ClientEventNotifierEndpoint")
public interface ClientEventNotifierEndpoint {
@WebMethod(operationName = "onClientEvent", action = "urn:OnClientEvent")
@WebResult(name = "return")
public Response onClientEvent(@WebParam(name = "readerCode") String readerCode, @WebParam(name = "clientRfid") String clientRfid,
@WebParam(name = "eventType") String eventType, @WebParam(name = "dateTime") Date dateTime);
}