2014-09-05 54 views
0

我想部署一个基于struts2的应用程序到谷歌应用程序引擎。我正在使用maven构建和部署应用程序。我执行以下步骤来创建应用程序结构:struts2应用程序的文件夹结构在谷歌应用程序引擎中部署

1)执行命令mvn archetype:生成创建核心应用程序结构。我遵循交互式命令行步骤和结构生成。

2)在这个tutorial在war目录的pom.xml中添加了依赖项。

3)复制src文件夹中的java类和动作。

4)创建struts.xml中的src战争目录的文件夹和添加的动作声明。我的执行mvn clean install。它成功执行。

6)我使用mvn appengine:devserver在耳朵目录中本地部署应用程序。

现在我试着导航到一个动作。我得到的错误:“没有行动映射”。我猜测它不能正确使用struts.xml。如果这是问题,我应该在哪里放struts.xml?如果不是,这个错误的原因是什么?

我对战争目录的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> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <groupId>com.me.demo</groupId> 
    <artifactId>teststrutsapplication-war</artifactId> 

    <parent> 
     <groupId>com.me.demo</groupId> 
     <artifactId>teststrutsapplication</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 

    <properties> 
     <appengine.app.version>1-war</appengine.app.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <!-- Compile/runtime dependencies --> 
     <dependency> 
      <groupId>com.google.appengine</groupId> 
      <artifactId>appengine-api-1.0-sdk</artifactId> 
      <version>1.9.9</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>jstl</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <!-- Test Dependencies --> 
     <dependency> 
      <groupId>com.google.appengine</groupId> 
      <artifactId>appengine-testing</artifactId> 
      <version>1.9.9</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.google.appengine</groupId> 
      <artifactId>appengine-api-stubs</artifactId> 
      <version>1.9.9</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>ognl</groupId> 
      <artifactId>ognl</artifactId> 
      <version>3.0.8</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.struts</groupId> 
      <artifactId>struts2-core</artifactId> 
      <version>2.3.16.3</version> 
     </dependency> 
     <dependency> 
      <groupId>asm</groupId> 
      <artifactId>asm</artifactId> 
      <version>3.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>asm</groupId> 
      <artifactId>asm-commons</artifactId> 
      <version>3.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>asm</groupId> 
      <artifactId>asm-tree</artifactId> 
      <version>3.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>2.4</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-lang</groupId> 
      <artifactId>commons-lang</artifactId> 
      <version>2.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.freemarker</groupId> 
      <artifactId>freemarker</artifactId> 
      <version>2.3.20</version> 
     </dependency> 
     <dependency> 
      <groupId>javassist</groupId> 
      <artifactId>javassist</artifactId> 
      <version>3.12.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.struts.xwork</groupId> 
      <artifactId>xwork-core</artifactId> 
      <version>2.3.16.3</version> 
     </dependency> 







    </dependencies> 

    <build> 
     <outputDirectory>target/${project.artifactId}-${project.version}</outputDirectory> 

     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <archiveClasses>true</archiveClasses> 
        <webResources> 
         <!-- in order to interpolate version from pom into appengine-web.xml --> 
         <resource> 
          <directory>${basedir}/src/main/webapp/WEB-INF</directory> 
          <filtering>true</filtering> 
          <targetPath>WEB-INF</targetPath> 
         </resource> 
        </webResources> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

回答

0

struts.xml的应该是在src /主/资源文件夹中。

另外,如果它有帮助,你的索引页应该扩展名为.html和NOT .jsp。一定要更新web.xml中的标签。