2012-02-17 83 views
1

我一直在使用ORM进行ORM,使用eclipse作为我的IDE。我使用Maven作为我的构建系统。在学习Struts之后,我试图让一个Hello World世界运转起来。但是,我不知道是什么问题,它不断给我:开始过滤器的异常struts2 java.lang.ClassNotFoundException:org.apache.struts2.dispatcher.FilterDispatcher

SEVERE: Exception starting filter struts2 
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher 

这里是文件夹结构是什么样的:

Project folder structure

的pom.xml:引擎收录here

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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 
    <display-name>wah</display-name> 

    <filter> 
     <filter-name>struts2</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 

</web-app> 

struts.xml中

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <constant name="struts.devMode" value="true" /> 

    <package name="default" namespace="/" extends="struts-default"> 
     <action name="Menu"> 
      <result>/menu.jsp</result> 
     </action> 
    </package> 

</struts> 

引入了menu.jsp有一个简单的Hello World文本。

有人可以帮我解释为什么我会得到ClassNotFoundException错误。我该如何解决它?什么是建议的目录结构设置一个struts 2项目?

编辑:

源代码导出以.zip here

感谢

+0

做一个Ctrl-T并键入'FilterDispatcher'。它显示任何结果? – m0skit0 2012-02-17 11:07:52

+1

你的类路径中是否有struts2-core jar文件? – 2012-02-17 11:16:23

+0

@ m0skit0是的,它的确如此。 – brainydexter 2012-02-17 11:43:18

回答

0

这是我的应用程序文件夹结构,做工精细看到enter image description here

,这是pom.xml的

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.tek</groupId> 
    <artifactId>marf</artifactId> 
    <version>0.0</version> 
    <packaging>war</packaging> 

    <name>Struts 2 Blank Webapp</name> 

    <properties> 
     <struts2.version>2.3.1.2</struts2.version> 
    </properties> 

    <dependencies> 

     <dependency> 
      <groupId>org.apache.struts</groupId> 
      <artifactId>struts2-core</artifactId> 
      <version>2.3.1.2</version> 
      <exclusions> 
        <exclusion> 
         <artifactId>tools</artifactId> 
         <groupId>com.sun</groupId> 
        </exclusion> 
       </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.struts</groupId> 
      <artifactId>struts2-config-browser-plugin</artifactId> 
      <version>2.3.1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.struts</groupId> 
      <artifactId>struts2-junit-plugin</artifactId> 
      <version>2.3.1.2</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.1.1</version> 
     </dependency> 

     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.5</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-mock</artifactId> 
      <version>2.0.8</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>2.5</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.4</version> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.0</version> 
      <scope>provided</scope> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <!-- <groupId>org.mortbay.jetty</groupId> 
       <artifactId>maven-jetty-plugin</artifactId> 
       <version>6.1.21</version> --> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.0.2</version> 

       <configuration> 
        <scanIntervalSeconds>10</scanIntervalSeconds> 
        <scanTargets> 
         <scanTarget>src/main/webapp/WEB-INF</scanTarget> 
         <scanTarget>src/main/webapp/WEB-INF/web.xml</scanTarget> 
         <scanTarget>src/main/resources/struts.xml</scanTarget> 
         <scanTarget>src/main/resources/example.xml</scanTarget> 

        </scanTargets> 
        <source>1.6</source> 
        <target>1.6</target> 
        <compilerArgument>-Xlint</compilerArgument> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

,这是web.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="struts_blank" version="2.4" 
     xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>Struts Blank</display-name> 

    <filter> 
    <filter-name>struts2</filter-name> 
    <filter-class> 
     org.apache.struts2.dispatcher.FilterDispatcherr 
    </filter-class> 
    </filter> 

    <filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 

来源here

+0

哦,我在文件夹结构中添加了pom.xml文件时犯了一个错误,但是它存在于主应用程序中。 – subodh 2012-02-17 14:10:08

+0

pom.xml中的scanTarget标签是什么? – brainydexter 2012-02-18 05:39:18

+0

是可选的除了由插件自动扫描的文件和目录以外,还需要定期扫描的文件和目录列表 – subodh 2012-02-18 05:48:58

相关问题