【问题标题】:Get value of Property in custom class mediator在自定义类调解器中获取属性的值
【发布时间】:2013-04-12 16:26:41
【问题描述】:

我正在创建一个代理,在该代理中我正在创建一个使用 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 或空。我在这里做错了什么? 提前致谢。

【问题讨论】:

    标签: wso2 wso2esb


    【解决方案1】:

    你的xpath错了,应该是这样的..

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

    【讨论】:

    • 我已经实现了你的 xpath 表达式,但又得到了相同的输出。我得到的不是 null 或空字符串,而是那个 xml 标签 openoandm.org/xml/ISBM/">
    • 您能否在该属性调解器之后放置一个日志调解器,以查看您使用该特定属性调解器获得了什么。喜欢 ; 问题不在于 classmediator..它与您的 xpath 相关
    • 是的,我在我的属性中介之后放置了日志中介,当我传递空白数据时,我得到 ChannelURI_Value = openoandm.org/xml/ISBM/">
    猜你喜欢
    • 1970-01-01
    • 2015-06-16
    • 2013-05-30
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 2019-05-20
    • 2015-04-26
    相关资源
    最近更新 更多