2013-07-10 69 views
1

有没有什么办法在WSO2中获取transport.vfs.FileURI的序列值? 比如我有一个代理VFS这样如何按顺序获取属性transport.vfs.FileURI WSO2?

<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序列中的这样?

谢谢:)

回答

1

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

+0

嗨拉塔,你能解释一下在MessageContext中读取服务级别参数吗? :) –

+0

检查以下帖子http://vvratha.blogspot.com/2011/12/writing-custom-class-mediator-in.html – Ratha

+0

http://vvratha.blogspot.com/2013/06/retrieving-axis2messagecontext- from.html – Ratha

1

因为这也是我的问题,所以我试着理解上面的答案,我只是在这里写下我从@Ratha的this评论中找到的内容。 要访问类中介程序中的服务参数,您可以简单地获取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设计者增加。