1

有没有办法在 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 序列中做这样的事情吗?

谢谢 :)

4

2 回答 2

1

因为这也是我的问题,所以我试图理解上面的答案,我只是在这里写下我从@Ratha 的评论中找到内容。要访问 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 设计器中添加属性调解器的那些。

于 2014-01-05T16:03:05.577 回答
1

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

于 2013-07-10T05:29:07.480 回答