我使用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.ormweb-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软件包)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top