Eclipse检测到没有错误但在运行tomcat时找不到bean

时间:2013-11-18 04:29:28

标签: java eclipse tomcat struts2 javabeans

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>

以下是我的文件层次结构的屏幕截图:

enter image description here

这是我的罐子:

enter image description here enter image description here enter image description here enter image description here

2 个答案:

答案 0 :(得分:0)

您的依赖项仅在编译时使用。要包含库(如struts),必须在项目的属性中配置“部署程序集”。 Here您可以找到该功能的说明。

答案 1 :(得分:0)

您似乎已经创建了一个Eclipse库,它指向Struts2发行版的lib文件夹,并将其添加到类路径(或构建路径,无论他们称之为什么)。

如果您希望编译项目,它必须解决与已配置库的依赖关系。但问题在于编译时依赖性,您添加了运行时依赖项,这些依赖项在运行应用程序时都部署到应用程序服务器。这不好。

据我记得,Eclipse的新版本有一个叫做“Web部署程序集”的东西,它描述了here。结合maven,您可以更好地控制应用范围到此功能。