Soap 区分wso2中的操作
我来自OpenESB Glassfish,我是wso2的新手。我必须调解一个服务,使其具有两个操作“Block”和“Consult”。 区分这些操作的唯一方法是通过开关中介从soap:body计算第一个节点,但默认情况下总是这样,它不起作用。 我无法通过get-property'Action'进行区分,因为它不是http头 我分析soap消息的代码如下所示:Soap 区分wso2中的操作,soap,wso2,Soap,Wso2,我来自OpenESB Glassfish,我是wso2的新手。我必须调解一个服务,使其具有两个操作“Block”和“Consult”。 区分这些操作的唯一方法是通过开关中介从soap:body计算第一个节点,但默认情况下总是这样,它不起作用。 我无法通过get-property'Action'进行区分,因为它不是http头 我分析soap消息的代码如下所示: `<log level="custom"> <property xmlns:soap="htt
`<log level="custom">
<property xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
name="OP"
expression="$body/*[1]"/>
</log>
<switch xmlns:soap="http://www.w3.org/2003/05/soap-envelope" source="$body/*[1]">
<case regex=".*ConsultRequest.*">
<log level="custom">
<property name="OPERATION" value="CONSULT"/>
</log>
</case>
<case regex=".*BlockRequest.*">
<log level="custom">
<property name="OPERATION" value="BLOCK"/>
</log>
</case>
<default>
<log level="custom">
<property name="OPERATION" value="DEFAULT"/>
</log>
</default>
</switch>`
服务器控制台中的结果是:
[2015-04-15 11:15:04611]INFO-LogMediator OP=25
[2015-04-15 11:15:04611]信息-日志中介操作=默认值
有没有人知道某个属性调用了什么操作
有人能帮我吗:$body/*[1]不是节点名,而是内容值或子xml树。如果希望在没有命名空间信息的情况下获取其名称,可以使用名为local name的xpath函数: 本地名称$body/*[1]