Spring找不到LIB,WebApp在Tomcat 6中没有启动
-
11-10-2019 - |
题
我使用STS的问题:我正在构建一个简单的春季应用程序,只是为了尝试MVC和持久性等功能。现在,我创建了一些非常简单的东西,这些内容是用我使用的春季3个教程。在服务器启动期间,应用程序失败了:
代码:
org.springframework.beans.factory.beancreationexception:错误创建使用名称'org.springframework.web.servlet.mvc.annotation.defaultannotation.defaultannotationhandlermpapping#0'':bean的初始化失败;嵌套的异常是org.springframework.beans.factory.cannotloadbeanclassexception:无法找到class [org.springframework.orm.hibernate.hibernate.annotation.annotationsessivationfactorybean] bean for bean for name mySessionefactory' servlet-context.xml];嵌套例外是Java.lang.ClassNotFoundException:org.springframework.orm.hibernate3.annotation.annotationsessessionFactoryBean
但是我 org.springframework.orm
在 web-inf/classes
文件夹(我什至尝试将其放入 web-inf/lib
)。当我在那里复制这些Libs时,Web应用程序库文件夹中出来了。在STS中构建此项目的工作正常,因为通过Project Properties在构建路径中设置了这种依赖关系,但是如何将LIB转移到Web应用程序中? (我正在使用Tomcat 6,因为它是我将来将来要使用的服务器)。这是我XML的配置问题吗?还是我只是错过了放置这种自由的正确方法? (我以前遇到过同样的问题,但是在课堂中添加所需的lib奏效了)。除此之外
解决方案
去 Servers
查看并双击 Tomcat Server
这将打开一个tomcat概述页面。这将向您显示服务器路径和部署Eclipse用来将WebApps发布到的路径。
例如,我的是:
服务器路径: .metadata\.plugins\org.eclipse.wst.server.core\tmp0
部署路径: wtpwebapps
现在在命令提示(或浏览器)中浏览到 %ECLIPSE_HOME%\workspaces\default\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
您应该看到您的WebApp。进入Web-Inf lib目录,然后检查您的罐子是否在那里。
有几件事要尝试:
如果罐子不在Web-Inf lib中,则可能需要重新发布。右键单击服务器视图中的tomcat,然后单击
Publish
. 。它会出现吗?如果没有,请再次右键单击tomcat,这次选择Clean...
这将清理所有内容并重新发布。如果这不起作用,蛮力的方法将是手动删除文件,然后告诉Eclipse重新发布它们。通过右键单击“服务器”视图中的tomcat下的WebApp来清洁您的工作目录
Clean module work directory
. 。或通过从中删除%ECLIPSE_HOME%\workspaces\default\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost
您还应该尝试尝试关闭/清洁/重建/重建/刷新您的WebApp项目,以防Eclipse没有进行更改。
其他提示
您需要将各种弹簧罐放入您的 WEB-INF/lib
目录 (WEB-INF/classes
JAR文件没有用)。
你不仅需要 org.springframework.orm
, ,您需要大多数(请参阅 这里 依赖图)。
至少必须位于 WEB-INF/lib
在您的战争档案中。而且,您只需要将战争文件部署到Productiv Web服务器。
如果您使用STS,但您的项目不是Maven项目:那么您需要将文件放入
<projectRoot>/WebContent/WEB-INF/libs
。如果使用Maven,则需要在pom.xml中指定依赖项,并使用Maven打包战争(运行为/Maven软件包)。