有没有办法在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序列中做这样的事情吗?
谢谢:)
答案 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设计器中添加属性中介的那些属性。