gpt4 book ai didi

java - Tomcat 6.0 中 Spring 应用程序的部署问题

转载 作者:行者123 更新时间:2023-11-28 22:14:27 26 4
gpt4 key购买 nike

我在将 Spring Web 应用程序部署到 Tomcat 6.0 时遇到问题。我想将一些 jar 部署到 shared/lib(catalina.properties 已正确配置);这些 jar 包含各种 bean 定义。部署到 webapps 目录的主应用程序使用:

<import resource="classpath*:com/**/*.xml"/>

在部署到 shared/lib 的 jars 中获取 bean 定义。

部分部署到shared/lib的bean已经更新,现在实现了MessageSourceAware接口(interface);当应用程序现在启动时,出现以下错误:

Caused by: java.lang.NoClassDefFoundError: org/springframework/context/MessageSourceAware
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1667)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1282)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1253)
... 72 more
Caused by: java.lang.ClassNotFoundException: org.springframework.context.MessageSourceAware
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 89 more

如果将 jars 从 shared/lib 移动到应用程序的 WEB-INF/lib 目录,显然一切正常,但我希望尽可能将 jars 保留在 shared/lib 中。

这看起来像是一个类加载器问题,但是当 Spring 尝试在 shared/lib jar 中创建 bean 时,WEB-INF/lib 中的 spring-context.jar 是否已经加载?

我很困惑;任何帮助将不胜感激。

最佳答案

将包含 org.springframework.context.MessageSourceAware 的 jar 文件添加到类路径中。如果您使用的是 Eclipse(我假设您是),请右键单击项目并单击构建路径。并将相应的jar文件添加到类路径中。

关于java - Tomcat 6.0 中 Spring 应用程序的部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8444245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com