Spring batch 春批,;Spring批处理管理项目

Spring batch 春批,;Spring批处理管理项目,spring-batch,jettison,Spring Batch,Jettison,我们有一个springbatch和springbatchadmin项目。 最近,我们在运行批处理过程时得到了java.util.EmptyStackException 在谷歌搜索之后,我对这个问题有了一些想法,并通过将抛弃罐从1.1升级到1.3.2来解决它 为此,我们在pom.xml中排除了spring批处理核心声明中的抛弃,并在pom.xml中添加抛弃作为依赖项 我们的问题是,这是解决这个问题的正确方法吗? 由于将抛弃升级到1.3.2,Spring批处理是否会出现任何问题 我们得到的错误的堆栈

我们有一个springbatch和springbatchadmin项目。 最近,我们在运行批处理过程时得到了
java.util.EmptyStackException

在谷歌搜索之后,我对这个问题有了一些想法,并通过将抛弃罐从1.1升级到1.3.2来解决它

为此,我们在pom.xml中排除了spring批处理核心声明中的抛弃,并在pom.xml中添加抛弃作为依赖项

我们的问题是,这是解决这个问题的正确方法吗? 由于将抛弃升级到1.3.2,Spring批处理是否会出现任何问题

我们得到的错误的堆栈跟踪:

Caused by: java.util.EmptyStackException
    at org.codehaus.jettison.util.FastStack.peek(FastStack.java:39)
    at org.codehaus.jettison.mapped.MappedXMLStreamWriter.writeEndElement(MappedXMLStreamWriter.java:200)
    at com.thoughtworks.xstream.io.xml.StaxWriter.endNode(StaxWriter.java:107)
    at com.thoughtworks.xstream.io.WriterWrapper.endNode(WriterWrapper.java:37)
    at com.thoughtworks.xstream.io.path.PathTrackingWriter.endNode(PathTrackingWriter.java:48)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.writeField(AbstractReflectionConverter.java:138)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.visit(AbstractReflectionConverter.java:113)
    at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:129)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:95)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:54)
    at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:65)
    at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:63)
    at com.thoughtworks.xstream.converters.collections.MapConverter.marshal(MapConverter.java:58)
    at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:65)
    at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:98)
    at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:38)
    at com.thoughtworks.xstream.XStream.marshal(XStream.java:845)
    at com.thoughtworks.xstream.XStream.marshal(XStream.java:834)
    at com.thoughtworks.xstream.XStream.toXML(XStream.java:815)
    at com.thoughtworks.xstream.XStream.toXML(XStream.java:805)
    at org.springframework.batch.core.repository.dao.XStreamExecutionContextStringSerializer.serialize(XStreamExecutionContextStringSerializer.java:43)
    at org.springframework.batch.core.repository.dao.JdbcExecutionContextDao.serializeContext(JdbcExecutionContextDao.java:212)
    at org.springframework.batch.core.repository.dao.JdbcExecutionContextDao.updateExecutionContext(JdbcExecutionContextDao.java:122)
    at org.springframework.batch.core.repository.support.SimpleJobRepository.updateExecutionContext(SimpleJobRepository.java:188)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy61.updateExecutionContext(Unknown Source)
    at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:145)
    at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:61)
    at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:60)
    at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:144)
    ... 7 more

我最近也遇到了这个问题。我不确定您是否有完整的stacktrace,但在我的应用程序中,有一个呼叫:

sun.misc.Unsafe

2016年的一个变化打破了许多jvm语言,比如groovy。抛弃1.1显然没有使用这种“不安全”的调用,这种调用可能会在JVM版本中发生变化(它不是普通java API的一部分)

谢谢你在问题中给出的答案:)我建议为这个问题开一张jira罚单