如何按顺序获取属性transport.vfs.FileURI WSO2?

时间:2013-07-10 03:41:42

标签: wso2 wso2esb

有没有办法在WSO2中的序列中获取transport.vfs.FileURI的值? 例如,我有像这样的代理vfs

  <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
  <parameter name="transport.PollInterval">15</parameter>
  <parameter name="transport.vfs.MoveAfterProcess">file:///opt/temp/</parameter>
  <parameter name="transport.vfs.FileURI">file:///opt/IDM/</parameter>
  <parameter name="transport.vfs.ContentType">application/xml</parameter>

然后我想在序列中获取transport.vfs.FileURI的值,可能是这样的:

  <property xmlns:ns="http://org.apache.synapse/xsd"
  name="fileuri"
  expression="fn:concat('uri : ',get-property('transport', 'FILE_URI'))"
  scope="default"
  type="STRING"/>

我可以在WSO2序列中做这样的事情吗?

谢谢:)

2 个答案:

答案 0 :(得分:1)

不,不是那样,在代理中它被设置为服务级别参数。因此,在代理序列中,您需要设置具有相同值的属性,并再次尝试访问该属性。 但我认为,您可以使用类中介来实现此目的,其中访问axis2 serviceMessagecontext,并读取服务级别参数。 (虽然不确定)

答案 1 :(得分:1)

由于这也是我的问题,我试图理解上面的答案,我只是在这里写下我从@Ratha的this评论中找到的内容。 要访问Class Mediator中的服务参数,您只需获取axis2消息上下文并通过其名称获取参数值。这是我使用的代码,它只是所谓链接中的内容的副本。

//These three lines are for getting Service Parameters from the axis2 message context.
        org.apache.axis2.context.MessageContext axis2MessageContext;
        axis2MessageContext = ((Axis2MessageContext)context).getAxis2MessageContext();

        System.out.println("Service Parameter name: "
                + axis2MessageContext.getParameter("parameterName").getValue());    

并且在这方面我认为可以说它不应该与消息上下文属性混淆,消息上下文属性是可以在wso2 esb设计器中添加属性中介的那些属性。