在自定义类中介中获取Property的值

时间:2013-04-12 08:05:30

标签: wso2 wso2esb

我正在创建一个代理,我在其中创建一个属性,该属性使用x-path表达式从请求主体获取数据。我写的财产是:

<property xmlns:xs="http://www.openoandm.org/xml/ISBM/" name="ChannelURI" expression="//xs:ChannelURI" scope="default" type="STRING"/>

现在我调用了一个类调解器,我传递了这个属性的值。所以在我的班级调解员中,我写了

public String channelUriFromProp = String.valueOf(context.getProperty("ChannelURI"));

所以现在如果我将任何字符串值传递给ChannelURI属性,我可以在我的类中介字符串channelUriFromProp中获取该值。

但真正的问题是,当我从请求中传递空值时

<body>
 <p:OpenPublicationSession xmlns:p="http://www.openoandm.org/xml/ISBM/">
  <!--Exactly 1 occurrence-->
  <xs:ChannelURI xmlns:xs="http://www.openoandm.org/xml/ISBM/"></xs:ChannelURI>
 </p:OpenPublicationSession>
</body>

然后当我在类中介代码中打印channelUriFromProp的值时,我得到

<xs:ChannelURI xmlns:xs="http://www.openoandm.org/xml/ISBM/"/>

而不是null或空。我在这里做错了吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您的xpath是错误的,它应该是这样的..

<property xmlns:xs="http://www.openoandm.org/xml/ISBM/"  xmlns:p="XXXXXXXXX"  name="ChannelURI" expression="//p:OpenPublicationSession/xs:ChannelURI"