Struts 2 + Maven + Struts 2 Rest插件帮助

时间:2010-08-03 08:04:25

标签: java maven-2 rest struts2 jetty

您好我是Struts 2和所有Java Web开发的新手,我使用maven创建了一个基本的struts2应用程序,然后添加了struts2-rest-plugin来构建我的项目;这是pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project>
 <modelVersion>4.0.0</modelVersion>
 <groupId>tutorial</groupId>
 <artifactId>tutorial</artifactId>
 <packaging>war</packaging>
 <version>0.1</version>
 <name>Struts 2 Starter</name>
 <url>http://www.myComp.com</url>
 <description>Struts 2 Starter</description>

 <dependencies>
  <!-- Junit -->
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>3.8.1</version>
   <scope>test</scope>
  </dependency>

  <!--  Struts 2 -->
  <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.1.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-spring-plugin</artifactId>
            <version>2.1.6</version>
        </dependency>
        <dependency>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-convention-plugin</artifactId>
         <version>2.1.6</version>
        </dependency>
        <dependency>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-rest-plugin</artifactId>
         <version>2.1.6</version>
        </dependency>


  <!-- Servlet & Jsp -->
  <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>

  <!-- Jakarta Commons -->
  <dependency>
   <groupId>commons-fileupload</groupId>
   <artifactId>commons-fileupload</artifactId>
   <version>1.1.1</version>
  </dependency>

  <!-- Dwr -->
  <dependency>
   <groupId>uk.ltd.getahead</groupId>
   <artifactId>dwr</artifactId>
   <version>1.1-beta-3</version>
  </dependency>
    </dependencies>

    <build>
      <finalName>tutorial</finalName>
     <plugins>
      <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                   <source>1.5</source>
                   <target>1.5</target>
                </configuration>
            </plugin>
      <plugin>
       <groupId>org.mortbay.jetty</groupId>
       <artifactId>maven-jetty-plugin</artifactId>
       <version>6.1.5</version>
       <configuration>
        <scanIntervalSeconds>10</scanIntervalSeconds>
       </configuration>
      </plugin>
     </plugins>
    </build>
</project>

web.xml和struts.xml如下:

的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="starter" 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 2 - Maven Archetype - Starter</display-name>

 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath*:applicationContext*.xml</param-value>
 </context-param>

 <!-- Filters -->
    <filter>
        <filter-name>action2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        <!-- filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class-->
    </filter>

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

 <!-- Listeners --> 
 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- Welcome file lists -->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.jsp</welcome-file>
        <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.convention.action.suffix" value="Controller"/>
 <constant name="struts.convention.action.mapAllMatches" value="true"/>
 <constant name="struts.convention.default.parent.package" value="rest-default"/>
 <constant name="struts.convention.package.locators" value="example"/>

</struts>

现在我有一个包org.apache.struts2.rest.example的包OrdersController.java(取自struts2-rest-showcase示例); 正在运行mvn jetty:运行并点击网址: http://localhost:8080/tutorial/orders/ 会导致错误404;

我在做什么?

1 个答案:

答案 0 :(得分:1)

好的家伙我发现了问题; maven默认生成一个struts.properties文件,这两行很麻烦:

struts.mapper.class = org.apache.struts2.dispatcher.mapper.DefaultActionMapper struts.action.extension =动作

评论它们并且XML将是有效的(你调查故事的其余部分)

相关问题