具有简单bean配置的NoClassDefinitionError

时间:2015-01-10 15:50:26

标签: spring-xd

<bean id="xmlItemReader" class="org.springframework.batch.item.xml.StaxEventItemReader">
        <property name="fragmentRootElementName" value="SomeElement" />
        <property name="unmarshaller" ref="jaxb2unmarshaller" />
    </bean>

    <bean id="jaxb2unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
        <property name="classesToBeBound">
                <list>
                     <value>org.MappedClass</value>
                </list>
        </property>
</bean>

我开始使用多步作业并且在spring-xd中打包为作业模块时出现问题,我从配置中剥离了所有其他bean,最后发现问题是由于上述两个bean而来。 spring-oxm jar存在于自定义模块lib中。我使用的是spring-xd 1.0.0.RC1。

我不想将jar放入服务器lib,所有必需的库都应该是自定义模块lib目录的一部分。 如何让它运作?

如果我将spring-oxm jar放在spring-xd / lib目录中,则会出现错误,但我也会收到其他错误。

我猜NoClassDefError的真正原因可能是缺少的依赖项,错误并不表示缺少依赖类的信息。

任何输入都会受到赞赏吗?

2 个答案:

答案 0 :(得分:0)

所提供的信息不足以得出任何结论。但是,您可以检查上面提供的代码块的倒数第二行。在此处编写代码时,关闭<property>标记丢失或是TYPO。

答案 1 :(得分:0)

如果模块的依赖jar不在服务器类路径上,则应该放在模块的lib /目录中。 Spring XD 1.1改进了对模块打包的支持,但在1.0中你需要手动安装jar。另外,我建议至少升级到1.1.0.M2或1.0.3.RELEASE。