[
https://issues.apache.org/activemq/browse/CAMEL-2044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=54569#action_54569
]
Torsten Mielke commented on CAMEL-2044:
---------------------------------------
Thanks Claus, I wasn't aware of that change.
Just for reference, the correct syntax is
{code:xml}
<methodCall bean="CBRBean" method="checkHeader"/>
{code}
it does not like the "ref" attribute in Camel 1.6 either.
> SAXParseException when setting bean based predicate in CBR in XML DSL.
> ----------------------------------------------------------------------
>
> Key: CAMEL-2044
> URL: https://issues.apache.org/activemq/browse/CAMEL-2044
> Project: Apache Camel
> Issue Type: Bug
> Affects Versions: 1.6.1
> Environment: Camel 1.6, Windows, CBR with bean based Predicate
> Reporter: Torsten Mielke
> Assignee: Claus Ibsen
> Attachments: CAMEL-2044.zip
>
>
> The following Java DSL route works perfectly in Camel 1.6:
> {code:java}
> public void configure() throws Exception {
> from("direct:In")
> .choice()
> .when().method("cbrBean", "checkHeader")
> .to("mock:foo")
> .otherwise()
> .to("mock:bar")
> .end();
> }
> {code}
> The bean code reads:
> {code:java}
> public static class MyCBRBean {
> public boolean checkHeader(Exchange exchange) {
> logger.debug("checkHeader invoked.");
> Message inMsg = exchange.getIn();
> String foo = (String) inMsg.getHeader("foo");
> if (foo.equals("bar")) {
> logger.debug("checkHeader returning true");
> return true;
> } else {
> logger.debug("checkHeader returning false");
> return false;
> }
> }
> }
> {code}
> But using the corresponding XML config fails:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:amq="http://activemq.org/config/1.0"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> http://activemq.apache.org/camel/schema/spring
> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
> http://activemq.org/config/1.0
> http://activemq.apache.org/snapshot-schema/activemq-core-5.0-SNAPSHOT.xsd">
> -->
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:amq="http://activemq.org/config/1.0"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> http://activemq.apache.org/camel/schema/spring
> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
> http://activemq.org/config/1.0
> http://activemq.apache.org/schame/core/activemq-core-5.0-SNAPSHOT.xsd">
> <bean id="CBRBean" class="com.progress.cs.CBRBean"/>
> <camelContext id="camel"
> xmlns="http://activemq.apache.org/camel/schema/spring">
> <route>
> <from uri="direct:In"/>
> <choice>
> <when>
> <method ref="CBRBean" method="checkHeader"/>
> <to uri="mock:foo"/>
> </when>
> <otherwise>
> <to uri="mock:bar"/>
> </otherwise>
> </choice>
> </route>
> </camelContext>
> </beans>
> {code}
> with this error:
> {code}
> Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid
> content was found starting with element 'method'. One of '{"http://activemq.
> apache.org/camel/schema/spring":description,
> "http://activemq.apache.org/camel/schema/spring":expressionType,
> "http://activemq.apache.org/camel/schema
> /spring":beanshell,
> "http://activemq.apache.org/camel/schema/spring":constant,
> "http://activemq.apache.org/camel/schema/spring":el, "http://activemq.a
> pache.org/camel/schema/spring":groovy,
> "http://activemq.apache.org/camel/schema/spring":header,
> "http://activemq.apache.org/camel/schema/spring":jxpat
> h, "http://activemq.apache.org/camel/schema/spring":javaScript,
> "http://activemq.apache.org/camel/schema/spring":expression,
> "http://activemq.apache.o
> rg/camel/schema/spring":methodCall,
> "http://activemq.apache.org/camel/schema/spring":ognl,
> "http://activemq.apache.org/camel/schema/spring":php, "http
> ://activemq.apache.org/camel/schema/spring":python,
> "http://activemq.apache.org/camel/schema/spring":ruby,
> "http://activemq.apache.org/camel/schema/sp
> ring":simple, "http://activemq.apache.org/camel/schema/spring":sql,
> "http://activemq.apache.org/camel/schema/spring":xpath,
> "http://activemq.apache.or
> g/camel/schema/spring":xquery}' is expected.
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:172)
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:382)
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:429)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3185)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1831)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:725)
> at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:322)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.ja
> va:1693)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
> at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
> at
> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
> at
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
> at
> org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
> at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
> ... 31 more
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.