2016-11-09 109 views
0

用於測試目的我有一個blueprint.xml像這樣。這個藍圖包含剛剛處理了在同一航線拋出的異常的路線,我宣佈一個bean該死作爲例外豆會拋出java.lang.IllegalArgumentExceptionjboss fuse中的部署錯誤

<?xml version="1.0" encoding="UTF-8"?> 
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" 
    xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0" 
    xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf" 
    xmlns:cxf-core="http://cxf.apache.org/blueprint/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="    http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd    http://camel.apache.org/schema/blueprint/cxf http://camel.apache.org/schema/blueprint/cxf/camel-cxf.xsd    http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd"> 

    <camelContext xmlns="http://camel.apache.org/schema/blueprint" trace="false"> 


    <propertyPlaceholder id="properties" location="classpath:myService.properties"/> 

    <!-- setup endpoint --> 
    <!-- <endpoint id="dead" uri="mock:dead"/> --> 
     <endpoint id="dead" uri="mock:dead"></endpoint> 

    <!-- setup a common redelivery policy, using property placeholders --> 
    <redeliveryPolicyProfile id="myRedelivery" redeliveryDelay="{{delay}}" maximumRedeliveries="{{max}}"/> 


     <bean id="damn" class="java.lang.IllegalArgumentException"> 
     <constructor-arg index="0" value="Damn"/> 
    </bean> 


    <route id="exceptionroute"> 
     <from uri="direct-vm:csl-mpgs-payment-1.0-fromamq1"/> 
     <onException redeliveryPolicyRef="myRedelivery"> 
      <!-- refer to common redelivery policy --> 
      <exception>java.lang.Exception</exception> 
      <!-- but we can override the profile and log retry attempts at WARN level --> 
      <redeliveryPolicy logRetryAttempted="true" retryAttemptedLogLevel="WARN"/> 
      <to ref="dead"/> 
     </onException> 
     <throwException ref="damn"/> 
     <to uri="direct-vm:csl-mpgs-payment-1.0-fromam"/> 
    </route> 
    </camelContext> 

</blueprint> 

當IAM部署到保險絲容器我收到以下錯誤。

Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'bean'. One of '{"http://camel.apache.org/schema/blueprint":redeliveryPolicyProfile, "http://camel.apache.org/schema/blueprint":onException, "http://camel.apache.org/schema/blueprint":onCompletion, "http://camel.apache.org/schema/blueprint":intercept, "http://camel.apache.org/schema/blueprint":interceptFrom, "http://camel.apache.org/schema/blueprint":interceptSendToEndpoint, "http://camel.apache.org/schema/blueprint":restConfiguration, "http://camel.apache.org/schema/blueprint":rest, "http://camel.apache.org/schema/blueprint":route}' is expected. 
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)[:] 
    at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)[:] 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)[:] 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)[:] 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)[:] 
    at org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown Source)[:] 
    at org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown Source)[:] 
    at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)[:] 
    at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source)[:] 
    at org.apache.xerces.jaxp.validation.DOMValidatorHelper.beginNode(Unknown Source)[:] 
    at org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source)[:] 
    at org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source)[:] 
    at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown Source)[:] 
    at javax.xml.validation.Validator.validate(Unknown Source) 
    at org.apache.aries.blueprint.parser.Parser.validate(Parser.java:314) 

如何解決這個???

回答

2

<bean>外應<camelContext>作爲一個OSGi的藍圖bean定義,如<camelContext>

之前將其移動