[mule-user] XPath problem

5 views
Skip to first unread message

Mrn

unread,
Aug 1, 2008, 9:33:05 AM8/1/08
to us...@mule.codehaus.org

Helo,
Sorry for bothering you again, but I want to ask one more thing about XPath
filter. I want to write simple configuration which show content base routing
and I have problem witch exceptions during runtime. Filter should pass soap
which has one of it's param equals 12.

Then I got "Attempted read from closed stream", and I don't know where's
mistake: there are no problems with skima and other filters (for instance
wildcard) return no errors.

Thanks in advance
Mrn.

Here's my config file:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:http="http://www.mulesource.org/schema/mule/http/2.0"
xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.0"
xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.0"
xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.0"
xmlns:xml2="http://www.mulesource.org/schema/mule/xml/2.0"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.mulesource.org/schema/mule/core/2.0
http://www.mulesource.org/schema/mule/core/2.0/mule.xsd
http://www.mulesource.org/schema/mule/stdio/2.0
http://www.mulesource.org/schema/mule/stdio/2.0/mule-stdio.xsd
http://www.mulesource.org/schema/mule/vm/2.0
http://www.mulesource.org/schema/mule/vm/2.0/mule-vm.xsd
http://www.mulesource.org/schema/mule/stdio/2.0
http://www.mulesource.org/schema/mule/stdio/2.0/mule-stdio.xsd
http://www.mulesource.org/schema/mule/cxf/2.0
http://www.mulesource.org/schema/mule/cxf/2.0/mule-cxf.xsd
http://www.mulesource.org/schema/mule/xml/2.0
http://www.mulesource.org/schema/mule/xml/2.0/mule-xml.xsd
">

<description>
Test 2 - Content Base Routing
</description>

<configuration defaultSynchronousEndpoints="true"/>

<model name="test2">
<service name="WebServiceCalendar">
<inbound>
<inbound-endpoint
address="http://localhost:8888/WebServiceCalendar">
<expression-filter evaluator="xpath"
expression="/soap:Envelope/soap:Body/date:nameOfTheMonth/date:month[text()=12]"
/>
<!--<expression-filter evaluator="xpath"
expression="(/soap:Envelope/soap:Body/date:nameOfTheMonth/date:month/text())='12'"
/>-->
<!--<wildcard-filter pattern="*>12*"/>-->
<!--<xml2:jxpath-filter pattern="1"/>-->
</inbound-endpoint>
</inbound>
<component class="org.mule.transport.soap.WSProxyService"/>
<outbound>
<outbound-pass-through-router>
<outbound-endpoint
address="http://pcX:8080/axis2/services/WebServiceCalendar"/>
</outbound-pass-through-router>
</outbound>
</service>
</model>
</mule>

--
View this message in context: http://www.nabble.com/XPath-problem-tp18774392p18774392.html
Sent from the Mule - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email


Andrew Perepelytsya

unread,
Aug 1, 2008, 10:39:53 AM8/1/08
to us...@mule.codehaus.org
Does it fail with sxc streaming filter? It's available in Mule 2.0.2.

HTH,
Andrew

Dan Diephouse

unread,
Aug 1, 2008, 5:01:06 PM8/1/08
to us...@mule.codehaus.org
Can you please supply a full stack trace? Its hard to track down where thats actually coming from...
Dan

Mrn

unread,
Aug 2, 2008, 6:07:14 AM8/2/08
to us...@mule.codehaus.org

Thanks for replay my message.


Andrew Perepelytsya wrote:
>
> Does it fail with sxc streaming filter? It's available in Mule 2.0.2.
>

I tried to write something similar to
http://svn.mule.codehaus.org/browse/~raw,r=12286/mule/branches/mule-2.0.x/modules/sxc/src/test/resources/xpath-filter-conf.xml
but it won't run too.


Dan Diephouse-2 wrote:
>
> Can you please supply a full stack trace? Its hard to track down where
> thats actually coming from...
>

Of course :) I'll do it as soon as possible (I have all at work)

Mrn.
--
View this message in context: http://www.nabble.com/XPath-problem-tp18774392p18787859.html

Andrew Perepelytsya

unread,
Aug 2, 2008, 3:53:52 PM8/2/08
to us...@mule.codehaus.org
Could you provide more details? "Won't run" isn't too informative...

Andrew

Mrn

unread,
Aug 4, 2008, 2:21:07 AM8/4/08
to us...@mule.codehaus.org

For a sxc:
http://www.nabble.com/file/p18806163/mule-config_content_base_routing_sxc.xml
mule-config_content_base_routing_sxc.xml

INFO 2008-08-04 08:09:04,171 [connector.http.0.receiver.2]
org.mule.transport.soap.WSProxyService: Defaulting to:
http://localhost:8080/Web
ServiceTest2/services/Calendar?WSDL
ERROR 2008-08-04 08:09:04,312 [connector.http.0.receiver.2]
org.mule.service.DefaultServiceExceptionStrategy:
********************************************************************************
Message : Failed to route event via endpoint:
DefaultInboundEndpoint{endpointUri=http://localhost:8888/WebServiceCalendar,
con
nector=HttpConnector{this=1904e0d, started=true, initialised=true,
name='connector.http.0', disposed=false, numberOfConcurrentTransactedRece
ivers=4, createMultipleTransactedReceivers=true, connected=true,
supportedProtocols=[http], serviceOverrides=null}, transformer=[], name='en
dpoint.http.localhost.8888.WebServiceCalendar', properties={},
transactionConfig=Transaction{factory=null, action=NEVER, timeout=0},
filter=
null, deleteUnacceptedMessages=false, securityFilter=null, synchronous=true,
initialState=started, remoteSync=false, remoteSyncTimeout=3000,
endpointEncoding=UTF-8}. Message payload is of type:
ContentLengthInputStream
Type : org.mule.api.routing.RoutingException
Code : MULE_ERROR-39999
Payload :
org.apache.commons.httpclient.ContentLengthInputStream@f20434
JavaDoc :
http://mule.mulesource.org/docs/apidocs/org/mule/api/routing/RoutingException.html
********************************************************************************
Exception stack is:
1. null (java.lang.NullPointerException)
com.envoisolutions.sxc.xpath.XPathBuilder:241 (null)
2. Failed to route event via endpoint:
DefaultInboundEndpoint{endpointUri=http://localhost:8888/WebServiceCalendar,
connector=HttpConnector{
this=1904e0d, started=true, initialised=true, name='connector.http.0',
disposed=false, numberOfConcurrentTransactedReceivers=4, createMultip
leTransactedReceivers=true, connected=true, supportedProtocols=[http],
serviceOverrides=null}, transformer=[], name='endpoint.http.localhost
.8888.WebServiceCalendar', properties={},
transactionConfig=Transaction{factory=null, action=NEVER, timeout=0},
filter=null, deleteUnaccepte
dMessages=false, securityFilter=null, synchronous=true,
initialState=started, remoteSync=false, remoteSyncTimeout=3000,
endpointEncoding=UTF
-8}. Message payload is of type: ContentLengthInputStream
(org.mule.api.routing.RoutingException)
org.mule.module.sxc.SxcFilteringOutboundRouter:136
(http://mule.mulesource.org/docs/apidocs/org/mule/api/routing/RoutingException.html)
********************************************************************************
Root Exception stack trace:
java.lang.NullPointerException
at
com.envoisolutions.sxc.xpath.XPathBuilder.handleNameStep(XPathBuilder.java:241)
at
com.envoisolutions.sxc.xpath.XPathBuilder.handle(XPathBuilder.java:218)
at
com.envoisolutions.sxc.xpath.XPathBuilder.handleExpression(XPathBuilder.java:131)
at
com.envoisolutions.sxc.xpath.XPathBuilder.compileEventHandler(XPathBuilder.java:103)
at
com.envoisolutions.sxc.xpath.XPathBuilder.compile(XPathBuilder.java:80)
at
org.mule.module.sxc.SxcFilteringOutboundRouter.doInitialize(SxcFilteringOutboundRouter.java:112)
at
org.mule.module.sxc.SxcFilteringOutboundRouter.initialize(SxcFilteringOutboundRouter.java:100)
at
org.mule.module.sxc.SxcFilteringOutboundRouter.isMatch(SxcFilteringOutboundRouter.java:123)
at
org.mule.routing.outbound.DefaultOutboundRouterCollection.route(DefaultOutboundRouterCollection.java:50)
at
org.mule.service.AbstractService.sendToOutboundRouter(AbstractService.java:904)
at org.mule.model.seda.SedaService.doSend(SedaService.java:238)
at
org.mule.service.AbstractService.sendEvent(AbstractService.java:510)
at
org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:354)
at
org.mule.routing.inbound.DefaultInboundRouterCollection.send(DefaultInboundRouterCollection.java:221)
at
org.mule.routing.inbound.DefaultInboundRouterCollection.route(DefaultInboundRouterCollection.java:181)
at
org.mule.transport.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:603)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:346)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:287)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.doRequest(HttpMessageReceiver.java:271)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.processRequest(HttpMessageReceiver.java:229)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:189)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:619)

********************************************************************************

ERROR 2008-08-04 08:09:04,406 [connector.http.0.receiver.2]
org.mule.DefaultExceptionStrategy: Caught exception in Exception Strategy:
Attem
pted read from closed stream.
java.io.IOException: Attempted read from closed stream.
at
org.apache.commons.httpclient.ContentLengthInputStream.read(ContentLengthInputStream.java:160)
at
org.apache.commons.httpclient.ContentLengthInputStream.read(ContentLengthInputStream.java:184)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1025)
at
org.mule.transformer.simple.ObjectToOutputHandler$3.write(ObjectToOutputHandler.java:75)
at
org.mule.transport.http.HttpServerConnection.writeResponse(HttpServerConnection.java:281)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:189)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:619)
INFO 2008-08-04 08:09:04,406 [connector.http.0.receiver.2]
org.mule.transport.http.HttpMessageReceiver: Closing HTTP connection.

Only with XPath:
http://www.nabble.com/file/p18806163/mule-config_content_base_routing_nabble.xml
mule-config_content_base_routing_nabble.xml

ERROR 2008-08-04 08:15:40,406 [connector.http.0.receiver.2]
org.mule.DefaultExceptionStrategy: Caught exception in Exception Strategy:
XML D
OM type "class org.apache.commons.httpclient.ContentLengthInputStream" is
currently not supported
java.lang.IllegalArgumentException: XML DOM type "class
org.apache.commons.httpclient.ContentLengthInputStream" is currently not
supported
at
org.mule.module.xml.expression.XPathExpressionEvaluator.createXPath(XPathExpressionEvaluator.java:49)
at
org.mule.module.xml.expression.AbstractXPathExpressionEvaluator.getXPath(AbstractXPathExpressionEvaluator.java:78)
at
org.mule.module.xml.expression.AbstractXPathExpressionEvaluator.evaluate(AbstractXPathExpressionEvaluator.java:44)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:137)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:183)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:92)
at
org.mule.routing.filters.ExpressionFilter.accept(ExpressionFilter.java:83)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:334)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:287)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.doRequest(HttpMessageReceiver.java:271)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.processRequest(HttpMessageReceiver.java:229)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:189)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:619)
INFO 2008-08-04 08:15:40,406 [connector.http.0.receiver.2]
org.mule.DefaultExceptionStrategy: There is no current event available,
routing
Null message with the exception
INFO 2008-08-04 08:15:40,406 [connector.http.0.receiver.2]
org.mule.transport.http.HttpMessageReceiver: Closing HTTP connection.
ERROR 2008-08-04 08:15:40,406 [connector.http.0.receiver.3]
org.mule.DefaultExceptionStrategy: Caught exception in Exception Strategy:
XML D
OM type "class org.apache.commons.httpclient.ContentLengthInputStream" is
currently not supported
java.lang.IllegalArgumentException: XML DOM type "class
org.apache.commons.httpclient.ContentLengthInputStream" is currently not
supported
at
org.mule.module.xml.expression.XPathExpressionEvaluator.createXPath(XPathExpressionEvaluator.java:49)
at
org.mule.module.xml.expression.AbstractXPathExpressionEvaluator.getXPath(AbstractXPathExpressionEvaluator.java:78)
at
org.mule.module.xml.expression.AbstractXPathExpressionEvaluator.evaluate(AbstractXPathExpressionEvaluator.java:44)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:137)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:183)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:92)
at
org.mule.routing.filters.ExpressionFilter.accept(ExpressionFilter.java:83)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:334)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:287)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.doRequest(HttpMessageReceiver.java:271)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.processRequest(HttpMessageReceiver.java:229)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:189)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:619)
INFO 2008-08-04 08:15:40,421 [connector.http.0.receiver.3]
org.mule.DefaultExceptionStrategy: There is no current event available,
routing
Null message with the exception
INFO 2008-08-04 08:15:40,421 [connector.http.0.receiver.3]
org.mule.transport.http.HttpMessageReceiver: Closing HTTP connection.
ERROR 2008-08-04 08:15:40,421 [connector.http.0.receiver.4]
org.mule.DefaultExceptionStrategy: Caught exception in Exception Strategy:
XML D
OM type "class org.apache.commons.httpclient.ContentLengthInputStream" is
currently not supported
java.lang.IllegalArgumentException: XML DOM type "class
org.apache.commons.httpclient.ContentLengthInputStream" is currently not
supported
at
org.mule.module.xml.expression.XPathExpressionEvaluator.createXPath(XPathExpressionEvaluator.java:49)
at
org.mule.module.xml.expression.AbstractXPathExpressionEvaluator.getXPath(AbstractXPathExpressionEvaluator.java:78)
at
org.mule.module.xml.expression.AbstractXPathExpressionEvaluator.evaluate(AbstractXPathExpressionEvaluator.java:44)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:137)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:183)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:92)
at
org.mule.routing.filters.ExpressionFilter.accept(ExpressionFilter.java:83)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:334)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:287)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.doRequest(HttpMessageReceiver.java:271)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.processRequest(HttpMessageReceiver.java:229)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:189)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:619)
INFO 2008-08-04 08:15:40,437 [connector.http.0.receiver.4]
org.mule.DefaultExceptionStrategy: There is no current event available,
routing
Null message with the exception
INFO 2008-08-04 08:15:40,437 [connector.http.0.receiver.4]
org.mule.transport.http.HttpMessageReceiver: Closing HTTP connection.
ERROR 2008-08-04 08:15:40,453 [connector.http.0.receiver.5]
org.mule.DefaultExceptionStrategy: Caught exception in Exception Strategy:
XML D
OM type "class org.apache.commons.httpclient.ContentLengthInputStream" is
currently not supported
java.lang.IllegalArgumentException: XML DOM type "class
org.apache.commons.httpclient.ContentLengthInputStream" is currently not
supported
at
org.mule.module.xml.expression.XPathExpressionEvaluator.createXPath(XPathExpressionEvaluator.java:49)
at
org.mule.module.xml.expression.AbstractXPathExpressionEvaluator.getXPath(AbstractXPathExpressionEvaluator.java:78)
at
org.mule.module.xml.expression.AbstractXPathExpressionEvaluator.evaluate(AbstractXPathExpressionEvaluator.java:44)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:137)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:183)
at
org.mule.util.expression.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:92)
at
org.mule.routing.filters.ExpressionFilter.accept(ExpressionFilter.java:83)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:334)
at
org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:287)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.doRequest(HttpMessageReceiver.java:271)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.processRequest(HttpMessageReceiver.java:229)
at
org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:189)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:619)
INFO 2008-08-04 08:15:40,468 [connector.http.0.receiver.5]
org.mule.DefaultExceptionStrategy: There is no current event available,
routing
Null message with the exception
INFO 2008-08-04 08:15:40,468 [connector.http.0.receiver.5]
org.mule.transport.http.HttpMessageReceiver: Closing HTTP connection.


--
View this message in context: http://www.nabble.com/XPath-problem-tp18774392p18806163.html

Dan Diephouse

unread,
Aug 5, 2008, 9:59:26 PM8/5/08
to us...@mule.codehaus.org
Looks like SXC may not have proper checks to see if your namespace has been declared. Make sure you declare your soap/date namespaces and try again. for instance:

<sxc:filtering-router>
.... your filters
<sxc:namespace prefix="soap" uri="..."/>
<sxc:namespace prefix="date" uri="..."/>
</sxc:filtering-router>
Reply all
Reply to author
Forward
0 new messages