Hi Sohani,

Since 'string-join' is a XPath 2.0 function, It seems you have to enable
xpath 2.0 support in ESB [1]

Thanks,
Viraj.

[1]
http://mytecheye.blogspot.com/2013/01/wso2-esb-enable-xpath-20-in-wso2-esb.html


On Tue, Jun 3, 2014 at 2:20 PM, Sohani Weerasinghe <soh...@wso2.com> wrote:

> Hi Harsha,
>
> I tried that as well, but it is not supporting in ESB as i mentioned
> previously.
>
> Thanks,
> Sohani
>
> Sohani Weerasinghe
> Software Engineer
> WSO2, Inc: http://wso2.com
>
> Mobile  : +94 716439774
> Blog     :http://christinetechtips.blogspot.com/
> Twitter  : https://twitter.com/sohanichristine
>
>
> On Tue, Jun 3, 2014 at 2:08 PM, Harsha Kumara <hars...@wso2.com> wrote:
>
>> Hi Sohani,
>> May be your expression syntax is incorrect. Is it works when it change
>> like  expression="fn:string-join(('name','age'), '-').I'm referring to
>> [1].
>>
>> [1]-http://www.xqueryfunctions.com/xq/fn_string-join.html
>> THanks,
>> Harsha
>>
>>
>>  On Tue, Jun 3, 2014 at 1:36 PM, Sohani Weerasinghe <soh...@wso2.com>
>> wrote:
>>
>>>  Hi All,
>>>
>>> I am using an XPATH expression as follows,
>>>
>>> <sequence xmlns="http://ws.apache.org/ns/synapse"; name="sequence1">
>>>    <log level="custom">
>>>       <property xmlns:ns="http://org.apache.synapse/xsd"; 
>>> xmlns:fn="http://www.w3.org/2005/xpath-functions"; name="insq" 
>>> expression="fn:string-join('name','age', '-')"/>
>>>    </log>
>>>    <drop/>
>>> </sequence>
>>>
>>> When I invoke the proxy I am getting an error as follows
>>>
>>>
>>> SynapseXPath Evaluation of the XPath expression 
>>> fn:string-join('name','age', '-') resulted in an error
>>>
>>> org.jaxen.UnresolvableException: No Such Function 
>>> {http://www.w3.org/2005/xpath-functions}:string-join
>>>
>>>     at 
>>> org.jaxen.SimpleFunctionContext.getFunction(SimpleFunctionContext.java:127)
>>>
>>>     at 
>>> org.apache.synapse.util.xpath.SynapseXPathFunctionContext.getFunction(SynapseXPathFunctionContext.java:93)
>>>
>>>     at org.jaxen.ContextSupport.getFunction(ContextSupport.java:242)
>>>
>>>     at org.jaxen.Context.getFunction(Context.java:216)
>>>
>>>     at 
>>> org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFunctionCallExpr.java:172)
>>>
>>>     at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:102)
>>>
>>>     at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:674)
>>>
>>>     at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:213)
>>>
>>>     at org.jaxen.BaseXPath.evaluate(BaseXPath.java:172)
>>>
>>>     at 
>>> org.apache.synapse.util.xpath.SynapseXPath.stringValueOf(SynapseXPath.java:297)
>>>
>>>     at 
>>> org.apache.synapse.mediators.MediatorProperty.getEvaluatedExpression(MediatorProperty.java:138)
>>>
>>>     at 
>>> org.apache.synapse.mediators.builtin.LogMediator.setCustomProperties(LogMediator.java:192)
>>>
>>>     at 
>>> org.apache.synapse.mediators.builtin.LogMediator.getCustomLogMessage(LogMediator.java:131)
>>>
>>>     at 
>>> org.apache.synapse.mediators.builtin.LogMediator.getLogMessage(LogMediator.java:117)
>>>
>>>     at 
>>> org.apache.synapse.mediators.builtin.LogMediator.mediate(LogMediator.java:91)
>>>
>>>     at 
>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
>>>
>>>     at 
>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)
>>>
>>>     at 
>>> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131)
>>>
>>>     at 
>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
>>>
>>>     at 
>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)
>>>
>>>     at 
>>> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131)
>>>
>>>     at 
>>> org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:166)
>>>
>>>     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>>
>>>     at 
>>> org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411)
>>>
>>>     at 
>>> org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183)
>>>
>>>     at 
>>> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
>>>
>>>     at 
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>>
>>>     at 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>
>>>     at java.lang.Thread.run(Thread.java:722)
>>>
>>>
>>> According to [1] it states the string-join function should be as follows,
>>>
>>> fn:string-join(('name','age'), '-') - with two brackets but when I try to 
>>> do so, ESB doesn't support this.
>>>
>>> [1]
>>> http://www.w3.org/TR/2014/REC-xpath-functions-30-20140408/#func-string-join
>>>
>>> Can someone please state the correct way of writing the XPATH expression
>>> ?
>>>
>>> Thanks,
>>> Sohani
>>>
>>> Sohani Weerasinghe
>>> Software Engineer
>>> WSO2, Inc: http://wso2.com
>>>
>>> Mobile  : +94 716439774
>>> Blog     :http://christinetechtips.blogspot.com/
>>> Twitter  : https://twitter.com/sohanichristine
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>> Harsha Kumara
>> Software Engineer, WSO2 Inc.
>> Mobile: +94775505618
>> Blog:harshcreationz.blogspot.com
>>
>
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Viraj Rajaguru
Software Engineer
WSO2 Inc. : http://wso2.com

Mobile: +94 77 3683068
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to