简体   繁体   English

步骤中不允许使用“可跳过的例外类别”

[英]'skippable-exception-classes' is not permitted on the step

I had a spring-batch application which has a parent step which has a parent step like below: 我有一个spring-batch应用程序,该应用程序具有一个父步骤,该父步骤如下所示:

<step id="baseStep" abstract="true"
    xmlns="http://www.springframework.org/schema/batch">
    <tasklet>
        <chunk>
            <skippable-exception-classes>
                <include class="java.lang.NullPointerException"/>
                <include class="java.lang.NumberFormatException"/>              
            </skippable-exception-classes>
        </chunk>
        <listeners>
            <listener ref="commonStepListener" />
        </listeners>
    </tasklet>
</step>

I have a child class which inherits the parent class like below: 我有一个子类,它继承了父类,如下所示:

<step id="callDataFromStore" parent="baseStep"
    xmlns="http://www.springframework.org/schema/batch">
    <tasklet>
        <chunk reader="myTableReader" processor="myTableProcessor"
            writer="myWebServiceWriter" commit-interval="10">
        </chunk>
        <listeners merge="true">
            <listener ref="myItemSkipListener" />
        </listeners>
    </tasklet>
</step>

Not that I have not specified skip-limit in either parent or child steps. 并不是说我没有在父步骤或子步骤中指定跳过限制。 I'm using spring batch 3.0.8. 我正在使用Spring Batch 3.0.8。 While executing, I'm encountered with the following exception 执行时,遇到以下异常

: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'callDataFromStagingTable.masterStep': Cannot resolve reference to bean 'callDataFromStore' while setting bean property 'step'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'callDataFromStore': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: The field 'skippable-exception-classes' is not permitted on the step [callDataFromStore] because there is no 'skip-limit'.
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:336)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1456)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1197)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:684)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
at org.jboss.as.webservices.deployers.WSComponentInstanceAssociationInterceptor.processInvocation(WSComponentInstanceAssociationInterceptor.java:56)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
at org.jboss.as.webservices.invocation.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:137)
at org.jboss.wsf.stack.cxf.JBossWSInvoker.performInvocation(JBossWSInvoker.java:169)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:232)
at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:85)
at org.jboss.wsf.stack.cxf.JBossWSInvoker.invoke(JBossWSInvoker.java:145)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:252)

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'callDataFromStore': FactoryBean threw exception on object creation; 由以下原因引起:org.springframework.beans.factory.BeanCreationException:创建名称为'callDataFromStore'的bean时出错:FactoryBean在对象创建时抛出异常; nested exception is java.lang.IllegalArgumentException: The field 'skippable-exception-classes' is not permitted on the step [callDataFromStore] because there is no 'skip-limit'. 嵌套的异常是java.lang.IllegalArgumentException:在步骤[callDataFromStore]上不允许使用字段'skippable-exception-classes',因为没有'skip-limit'。 at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:151) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1514) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) ... 91 more 在org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:151)在org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)在org.springframework.beans.factory org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory)上的.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1514)位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) .java:195),位于org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)…还有91个

The issue I'm facing here is that mine is an upgrade application. 我在这里面临的问题是我的是升级应用程序。 I'm upgrading from spring batch 2.1.8 to 3.0.8. 我正在从春季批处理2.1.8升级到3.0.8。 Also, the old application was using weblogic and I have changed it to jboss. 另外,旧的应用程序正在使用weblogic,我将其更改为jboss。 This exception was not occuring while executing the job in spring batch version 2.1.8. 在春季批处理版本2.1.8中执行作业时,未发生此异常。 Any leads on what could be the possible issue? 有什么潜在的问题线索吗? Any help would be hugely appreciated. 任何帮助将不胜感激。 Thanks a lot in advance 提前谢谢

The exception is pretty clear. 例外很明显。 It says that you can't configure skippable exceptions without also specifying a skip limit which your configuration does not have. 它说,如果不指定配置没有的跳过限制,就无法配置可跳过的异常。 Add a skip limit and you should be ok. 添加一个跳过限制,您应该可以。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM