2014-05-13 22 views
-1

这里的期望是什么代码片段:语法发布策略表达在Spring集成

<int:resequencer input-channel="resequencerChannel" output-channel="headerRoutingChannel" 
     send-timeout="10000" release-strategy-expression="size() eq (T(java.lang.Runtime).getRuntime().availableProcessors() * 3)"/> 

但语法似乎是不正确的。我想知道release-strategy-expression的实际语法。 在此先感谢。

Stack Trace: 
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 8): Type cannot be found 'org.springframework.util.Assert' 
    at org.springframework.expression.spel.support.StandardTypeLocator.findType(StandardTypeLocator.java:115) 
    at org.springframework.expression.spel.ExpressionState.findType(ExpressionState.java:138) 
    at org.springframework.expression.spel.ast.TypeReference.getValueInternal(TypeReference.java:58) 
    at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:48) 
    at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:84) 
    at org.springframework.expression.spel.ast.Ternary.getValueInternal(Ternary.java:57) 
    at org.springframework.expression.spel.ast.MethodReference.getArguments(MethodReference.java:147) 
    at org.springframework.expression.spel.ast.MethodReference.getValueRef(MethodReference.java:66) 
    at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:63) 
    at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:84) 
    at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:114) 
    at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:111) 
    at org.springframework.integration.util.AbstractExpressionEvaluator.evaluateExpression(AbstractExpressionEvaluator.java:144) 
    at org.springframework.integration.util.MessagingMethodInvokerHelper.processInternal(MessagingMethodInvokerHelper.java:268) 
    at org.springframework.integration.util.MessagingMethodInvokerHelper.process(MessagingMethodInvokerHelper.java:142) 
    at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:73) 
+0

请提供更多信息,请您想要实现什么。你SpEL现在真的不正确 –

回答

0

如果你想在组大小达到3倍的可用处理器来释放...

size() eq ...

+0

我试着使用SpelExpressionParser测试表达式,它按照预期评估表达式。然而,从XML配置,我得到以下异常:org.springframework.expression.spel.SpelEvaluationException:EL1005E :(pos 8):无法找到类型'org.springframework.util.Assert' – user3631611

+0

我刚测试它(从您的配置复制上面),它对我来说工作得很好(还有==)。我在“OpEQ”中放置了一个断点,在我的笔记本电脑上将“left”评估为1(第一条消息)和“right”评估为12。工作得很好。 –

+0

您是否使用XML配置或通过SpelExpressionParser明确地尝试使用它? – user3631611