You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Torsten Mielke (JIRA)" <ji...@apache.org> on 2009/09/28 18:13:53 UTC

[jira] Created: (CAMEL-2044) SAXParseException when setting bean based predicate in CBR in XML DSL.

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


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.


[jira] Commented: (CAMEL-2044) SAXParseException when setting bean based predicate in CBR in XML DSL.

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=54547#action_54547 ] 

Claus Ibsen commented on CAMEL-2044:
------------------------------------

In Camel 1.6 the {{method}} is named {{methodCall}} instead.

So try with
{code}
 <methodCall ref="CBRBean" method="checkHeader"/>
{code}

> 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
>         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.


[jira] Resolved: (CAMEL-2044) SAXParseException when setting bean based predicate in CBR in XML DSL.

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-2044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-2044.
--------------------------------

    Resolution: Working as Designed
      Assignee: Claus Ibsen

> 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.


[jira] Updated: (CAMEL-2044) SAXParseException when setting bean based predicate in CBR in XML DSL.

Posted by "Torsten Mielke (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-2044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Torsten Mielke updated CAMEL-2044:
----------------------------------

    Attachment: CAMEL-2044.zip

Attaching JUnit test that with two test classes. CBRHeaderBeanTest sets up the Java based DSL and works perfectly, CBRHeaderBeanContextTest defines the same route using XML but fails to startup. 

> 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
>         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.


[jira] Commented: (CAMEL-2044) SAXParseException when setting bean based predicate in CBR in XML DSL.

Posted by "Torsten Mielke (JIRA)" <ji...@apache.org>.
    [ 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.