Eclipse没有检测到代码中的任何错误,但是当我通过tomcat运行它时,它不会在浏览器中呈现,因为它无法找到资源。控制台说
Unable to load configuration. - bean - jar:file:/Users/jasonrodriguez/Java/apache-tomcat-7.0.47/wtpwebapps/TutorialFinder/WEB-INF/lib/struts2-gxp-plugin-2.3.15.3.jar!/struts-plugin.xml:8:162
但是我的库路径已经连接到lib
,就像它应该的那样,我拥有整个jar库。我错过了什么吗?
这是我的动作类:
package org.koushik.javabrains.action;
import org.koushik.javabrains.service.TutorialFinderService;
public class TutorialAction {
public String execute() {
TutorialFinderService tutorialFinderService = new TutorialFinderService();
String bestTutorialSite = tutorialFinderService.getBestTutorialSite();
System.out.println(bestTutorialSite);
return "success";
}
}
struts.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" namespace="/tutorials" extends="struts-default">
<action name="getTutorial" class="org.koushik.javabrains.action.TutorialAction">
<result name="success">/success.jsp</result>
<result name="failure">/error.jsp</result>
</action>
</package>
</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>TutorialFinder</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
以下是我的文件层次结构的屏幕截图:
这是我的罐子:
答案 0 :(得分:0)
您的依赖项仅在编译时使用。要包含库(如struts),必须在项目的属性中配置“部署程序集”。 Here您可以找到该功能的说明。
答案 1 :(得分:0)
您似乎已经创建了一个Eclipse库,它指向Struts2发行版的lib
文件夹,并将其添加到类路径(或构建路径,无论他们称之为什么)。
如果您希望编译项目,它必须解决与已配置库的依赖关系。但问题在于编译时依赖性,您添加了运行时依赖项,这些依赖项在运行应用程序时都部署到应用程序服务器。这不好。
据我记得,Eclipse的新版本有一个叫做“Web部署程序集”的东西,它描述了here。结合maven,您可以更好地控制应用范围到此功能。