cxf webservice服务端怎么能获取客户端发送的soap请求信息

cxf webservice服务端怎么能获取客户端发送的soap请求信息,第1张

CXF 可以记录报文日志,如果是Spring:

<jaxws:inInterceptors>

<bean class="orgapachecxfinterceptorLoggingInInterceptor" />

</jaxws:inInterceptors>

代码也可以:

Client proxy = ClientProxygetClient(port);

proxygetInInterceptors()add(new LoggingInInterceptor());

有对应的QName,就能获取了吧

public class SoapUtil{

public SOAPPart initSoapPart throwsSOAPException{

SOAPMessage soapMessage = MessageFactorynewInstancecreateMessage;

SOAPPart soapPart = soapMessagegetSOAPPart;

SOAPEnvelope soapEnvelope = soapPartgetEnvelope;

SOAPHeader soapHeader = soapEnvelopegetHeader;

SOAPElement cwmp = soapEnvelopeaddNamespaceDeclaration;

SOAPElement xsi = soapEnvelopeaddNamespaceDeclaration;

SOAPElement xsd = soapEnvelopeaddNamespaceDeclaration;

SOAPElement enc = soapEnvelopeaddNamespaceDeclaration;

SOAPElement id = soapHeaderaddChildElement;

idsetTextContent;

return soapPart;

}

 }

1获取请求中参数的值:

设下图是我们已经建好的一步test step,它是一个rest test request,请求的参数有client_id和password两个,这一步step我们之前已经给它取名为user了

假设我们现在需要获取到client_id的值(也就是testor),那么我们可以新建一个groovy script,并且写入以下代码:

testRunnertestCasetestSteps['user']getPropertyValue("client_id")

在soapUI中可以把它输出,结果就是我们想要的testor

2获取响应结果的值

接上文,假设user这个request的返回结果是以下的json:

{

"code": 200,

"message": "",

"result": {

"token": "F7052EEE86FA6087CC0D1B2BD8BA8040"

}

}

那么我们想要获取到token的值,应该怎么做呢?

首先,要通过SoapUI提供的GroovyUtils获取返回的xml消息的 *** 作XmlHolder

import comeviwaresoapuisupportGroovyUtils

def gu = new GroovyUtils(context)

def field = gugetXmlHolder("user#ResponseAsXml")

接着,在XmlHolder中使用Xpath获取返回字段内容,可以自己写,如下:

def b= fieldgetNodeValue("//:result/:token")

如果觉得太麻烦老是写错path,而且你也不嫌代码难看,可以去assertion里选择Xpath Match,直接找到这个节点,用系统提供给你的值写到groovy中

即可以:def c=fieldgetNodeValue("//ns1:Response[1]/ns1:result[1]/ns1:token[1]")

到soapUI中查看输出结果,可以看到上文的b和c两个变量都能获取到正确的token值

以上就是关于cxf webservice服务端怎么能获取客户端发送的soap请求信息全部的内容,包括:cxf webservice服务端怎么能获取客户端发送的soap请求信息、java soap的header怎么获取、利用groovy脚本获取soapui中请求和响应的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9474997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存