Struts 2 +梅文 + Struts 2 Rest 插件帮助

发布于 2024-09-13 03:13:09 字数 6079 浏览 5 评论 0原文

您好,我是 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:run 并点击 url: http://localhost: 8080/tutorial/orders/ 导致错误 404;

我做错了什么?

Hi I am new to Struts 2 and all the java web development, I created a basic struts2 application using maven and then added the struts2-rest-plugin to build my project; here is 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>

the web.xml and struts.xml are as following:

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>

Now I have package org.apache.struts2.rest.example with class OrdersController.java (taken from the struts2-rest-showcase example); running mvn jetty:run and hitting url: http://localhost:8080/tutorial/orders/ results in Error 404;

What's wrong that I am doing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

复古式 2024-09-20 03:13:09

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

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

将它们注释掉,XML 就会有效(您调查故事的其余部分)

Ok guys I found ma problem; maven by default generates a struts.properties file and these two lines are trouble:

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

Comment them out and XML would be effective (You investigate the rest of story)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文