2016-05-03 25 views
0

下面是Mule配置XML。如何傳遞會話變量作爲mule中rollback-exception-strategy組件中maxRedeliveryAttempts字段的參數?

<http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8090" doc:name="HTTP Listener Configuration"/> 
<flow name="testflowFlow"> 
    <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/> 
    <set-session-variable variableName="count" value="#[message.inboundProperties.'http.query.params'.retrycount]" doc:name="count Session Variable"/> 
    <set-payload value="#[sessionVars.count]" doc:name="Set Payload"/> 
    <file:outbound-endpoint path="C:\Users\y0134079\Desktop" responseTimeout="10000" doc:name="File"/> 
    <set-payload value="#[sessionVars.count]" doc:name="Set Payload"/> 
    <rollback-exception-strategy maxRedeliveryAttempts="#[sessionVars.count]" doc:name="Rollback Exception Strategy"/> 
</flow> 

我試圖傳遞的最大重試次數的查詢參數(RetryCount重)在HTTP請求中的一個嘗試。但maxredeliveryattempts字段期望一個整數,並且所提供的查詢參數是構建失敗的字符串,因爲它不能從字符串轉換爲整數。對此有何建議?

錯誤:

*****所致:org.springframework.beans.TypeMismatchException:無法屬性值 'java.lang.String中' 轉換類型的所需類型 'java.lang.Integer中'屬性'maxRedeliveryAttempts';嵌套異常是java.lang.NumberFormatException:對於輸入字符串:「[sessionVars.count]」 at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:468)〜[spring-beans-3.2.10.RELEASE。 jar:3.2.10.RELEASE] ***** at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:494)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE ] at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:488)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1464)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapabl eBeanFactory.java:1423)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1159)〜[ spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)〜[spring-beans-3.2.10。 RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10。發佈] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:276)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframewo rg.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:129)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support。 AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1418)〜[彈簧豆-3.2.10.RELEASE.jar:3.2.10.RELEASE] 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java: 1159)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)〜[spring-beans- 3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java :458)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:293)〜[spring- beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)〜[spring-beans-3.2.10.RELEASE。 jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10。RELEASE] at org.springframework。org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] 。 beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:633)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:932)〜[spring-context-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)〜[spring- context-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.mule.config.spring.SpringRegistry.doInitialise(SpringRegistry.java:86)〜[mule-module-spring-config-3.6.1。罐子:3.6.1] at org.mule.registry.AbstractRegistry.initialise(AbstractRegistry.java:105)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.config.spring.SpringXmlConfigurationBuilder.createSpringRegistry(SpringXmlConfigurationBuilder。 java:135)〜[mule-module-spring-config-3.6.1.jar:3.6.1] at org.mule.config.spring.SpringXmlConfigurationBuilder.doConfigure(SpringXmlConfigurationBuilder.java:90)〜[mule-module- spring-config-3.6.1.jar:3.6.1] at org.mule.config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:43)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.config.builders.AbstractResourceConfigurationBuilder.configure(AbstractResourceConfigurationBuilder.java:69)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.config.builders.AutoConfigurationBuilder.autoConfigure( AutoConfigurationBuilder.java:101)〜[mule-core-3 .6.1.jar:3.6.1] at org.mule.config.builders.AutoConfigurationBuilder.doConfigure(AutoConfigurationBuilder.java:52)〜[mule-core-3.6.1.jar:3.6.1] at org.mule .config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:43)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.config.builders.AbstractResourceConfigurationBuilder.configure(AbstractResourceConfigurationBuilder.java:69 )〜[mule-core-3.6.1.jar:3.6.1] at org.mule.context.DefaultMuleContextFactory $ 1.configure(DefaultMuleContextFactory.java:84)〜[mule-core-3.6.1.jar:3.6。 1] at org.mule.context.DefaultMuleContextFactory.doCreateMuleContext(DefaultMuleContextFactory.java:217)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.context.DefaultMuleContextFactory.createMuleContext(DefaultMuleContextFactory。 java:76)〜[mule-core-3.6.1.jar: 3.6.1] at org.mule.module.launcher.application.DefaultMuleApplication.init(DefaultMuleApplication.java:187)〜[mule-module-launcher-3.6.1.jar:3.6.1] ... 14 more 引起:java.lang.NumberFormatException:對於輸入字符串:「[sessionVars.count]」 at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)〜[?:1.7.0_79] at java.lang .Integer.parseInt(Integer.java:492)〜[?:1.7.0_79] at java.lang.Integer.valueOf(Integer.java:556)〜[?:1.7.0_79] at java.lang.Integer .decode(Integer.java:984)〜[?:1.7.0_79] at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:155)〜[spring-core-3.2.10.RELEASE.jar:3.2 .10.RELEASE] at org.springframework.beans.propertyeditors.CustomNumberEd itor.setAsText(CustomNumberEditor.java:115)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:455)〜[ spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:427)〜[spring-beans-3.2.10.RELEASE.jar: 3.2.10.RELEASE] at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:181)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework。 beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:448)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:494) 〜[彈簧豆-3.2.10.RELEASE.jar:3.2.10。發佈] at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:488)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory。 support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1464)〜[彈簧豆-3.2.10.RELEASE.jar:3.2.10.RELEASE] 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory。 java:1423)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1159)〜[spring- beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutow ireCapableBeanFactory.java:519)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)〜[ spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:276)〜[spring-beans-3.2.10。 RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:129)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10。發佈] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1418)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.s在org.springframework.beans.factory.support上提供pringframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1159)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] 。 AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java: 458)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:293)〜[spring-beans -3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)〜[spring-beans-3.2.10.RELEASE。 jar:3.2.10.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.beans。 factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:633)〜[spring-beans-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext。 java:932)〜[spring-context-3.2.10.RELEASE.jar:3.2.10.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)〜[spring-context- 3.2.10.R ELEASE.jar:3.2.10.RELEASE] at org.mule.config.spring.SpringRegistry.doInitialise(SpringRegistry.java:86)〜[mule-module-spring-config-3.6.1.jar:3.6.1] at org.mule.registry.AbstractRegistry.initialise(AbstractRegistry.java:105)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.config.spring.SpringXmlConfigurationBuilder.createSpringRegistry(SpringXmlConfigurationBuilder。 java:135)〜[mule-module-spring-config-3.6.1.jar:3.6.1] at org.mule.config.spring.SpringXmlConfigurationBuilder.doConfigure(SpringXmlConfigurationBuilder.java:90)〜[mule-module- spring-config-3.6.1.jar:3.6.1] at org.mule.config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:43)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.config.builders.AbstractResourceConfigurationBuilder。配置(AbstractResourceConfigurationBuilder.java:69)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.config.builders.AutoConfigurationBuilder.autoConfigure(AutoConfigurationBuilder.java:101)〜[mule-core- 3.6.1.jar:3.6.1] at org.mule.config.builders.AutoConfigurationBuilder.doConfigure(AutoConfigurationBuilder.java:52)〜[mule-core-3.6.1.jar:3.6.1] at org。 mule.config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:43)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.config.builders.AbstractResourceConfigurationBuilder.configure(AbstractResourceConfigurationBuilder.java: 69)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.context.DefaultMuleContextFactory $ 1.configure(DefaultMuleContextFactory.java:84)〜[mule-core-3.6.1.jar:3.6 .1] at org.mule.context.DefaultMuleContextFactory.doCrea teMuleContext(DefaultMuleContextFactory.java:217)〜[mule-core-3.6.1.jar:3.6.1] at org.mule.context.DefaultMuleContextFactory.createMuleContext(DefaultMuleContextFactory.java:76)〜[mule-core-3.6。 1.jar:3.6.1] at org.mule.module.launcher.application.DefaultMuleApplication.init(DefaultMuleApplication.java:187)〜[mule-module-launcher-3.6.1.jar:3.6.1] 。 .. 14更多 INFO 2016-05-03 08:13:33,029 [main] org.mule.module.launcher.DeploymentDirectoryWatcher: ++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++ +騾踢起來了(每5000ms )+ ++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++ INFO 2016-05-03 08:13:33,239 [main] org.mule.module.launcher.StartupSummaryDeploymentListener:


        • DOMAIN + - - * - - + + STATUS - - *
  • 默認*部署階段*



        • 應用+ - - * - - + DOMAIN + - - * - - + STATUS + - - *
  • testflow *默認*失敗*


回答

1

該屬性不支持MEL表達式。它支持彈簧屬性佔位符,但不支持動態MEL表達式。它在初始化而非運行時被評估。

-2

使用#[的Integer.parseInt(sessionVars.count)

+0

仍然面臨同樣的錯誤。由org.springframework.beans.TypeMismatchException導致:未能將類型'java.lang.String'的屬性值轉換爲屬性'maxRedeliveryAttempts'所需的類型'java.lang.Integer';嵌套的異常是java.lang.NumberFormatException:對於輸入字符串:「[Integer.parseInt(sessionVars.count)]」 – trilawney

+0

那麼session.count沒有值。它或者沒有在這裏設置#[message.inboundProperties.'http.query.params'.retrycount]或者使用#[Integer.parseInt(sessionVars ['count'])] –