Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Websphere和Spring的ClassNotFoundException/NoClassDefFoundException_Spring_Websphere_Classloader_Noclassdeffounderror_Classnotfoundexception - Fatal编程技术网

使用Websphere和Spring的ClassNotFoundException/NoClassDefFoundException

使用Websphere和Spring的ClassNotFoundException/NoClassDefFoundException,spring,websphere,classloader,noclassdeffounderror,classnotfoundexception,Spring,Websphere,Classloader,Noclassdeffounderror,Classnotfoundexception,我有一个EAR/WAR文件,应该部署在Websphere应用服务器上。web应用程序使用SpringWeb/webmvc。springjar的完整堆栈通过治理添加到websphereapplicationserver类路径。因此,我只在这个WEB应用程序WAR文件的WEB-INF/lib中提供1个jar castor-1.2.jar文件,因为这个应用程序只需要这个文件。类加载策略设置为PARENT_LAST spring配置引用了作为WAR文件一部分交付的类 在应用程序启动过程中,我为WEB-I

我有一个EAR/WAR文件,应该部署在Websphere应用服务器上。web应用程序使用SpringWeb/webmvc。springjar的完整堆栈通过治理添加到websphereapplicationserver类路径。因此,我只在这个WEB应用程序WAR文件的WEB-INF/lib中提供1个jar castor-1.2.jar文件,因为这个应用程序只需要这个文件。类加载策略设置为PARENT_LAST

spring配置引用了作为WAR文件一部分交付的类

在应用程序启动过程中,我为WEB-INF/lib中castor-1.2.jar中包含的类获取和ClassNotFoundException以及NoClassDefFoundError

有人能解释一下,为什么只要SpringJAR部署到服务器类路径并且castor作为应用程序的一部分发布,classloader就找不到castor类

1 - Module - com.ibm.ws.classloader.CompoundClassLoader
      file: ... test-ear.ear/test-war.war/WEB-INF/lib/castor-1.2.jar
2 - Module - com.ibm.ws.classloader.CompoundClassLoader
3 - Server-associated - com.ibm.ws.classloader.ExtJarClassLoader
      file: ... clusters/cluster1/custom/classpath/base-lib/spring-webmvc-3.2.9.RELEASE.jar
      ... other spring libraries
4 - ...
除了冗余地将spring库与WAR捆绑在一起外,我还能做什么呢?顺便说一句,WAR是有效的!解决问题

这是一个例外:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.view.xml.MarshallingView#16799e2d' defined in ServletContext resource [/WEB-INF/castortest-servlet.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org.exolab.castor.mapping.MappingException
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:276)
        ... 81 more
Caused by: java.lang.NoClassDefFoundError: org.exolab.castor.mapping.MappingException
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:93)
        at java.lang.J9VMInternals.prepare(J9VMInternals.java:490)
        at java.lang.Class.getDeclaredConstructors(Class.java:533)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:231)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1002)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:975)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:276)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:122)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1417)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1158)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
        ... 83 more
Caused by: java.lang.ClassNotFoundException: org.exolab.castor.mapping.MappingException
        at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
        at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:204)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:688)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:667)
        at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:119)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:650)
        at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
        at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
        at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:598)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:650)
        ... 97 more

您需要以下内容:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-oxm</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>

    <!-- Uses Castor for XML -->
    <dependency>
        <groupId>org.codehaus.castor</groupId>
        <artifactId>castor</artifactId>
        <version>1.2</version>
    </dependency>

    <!-- Castor need this -->
    <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.8.1</version>
    </dependency>

</dependencies>

我建议你经历一下-