2011-01-12 21 views
0

Webアプリケーション(実際にはgwtアプリケーション)があり、セレンテストのためにJettyサーバーにデプロイしたい、maven、jet-plugin、gwt-maven-pluginを使用しました。そして、セレンのmaven-pluginの、私は最終的に実行している桟橋やセレンサーバを得たが、セレンテストがあるため有名な404 ERORの失敗:Webアプリケーションをjettyにデプロイする方法

com.thoughtworks.selenium.SeleniumException: XHR ERROR: URL = http://127.0.0.1:8080/index.html Response_Code = 404 Error_Message = Not Found 

イムわからない私の桟橋の設定は、それへの新規のIM一種以来正しい場合、ここでは(のmaven-桟橋 - プラグイン)です。

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>maven-jetty-plugin</artifactId> 

    <configuration> 
    <contextPath>/sample-console</contextPath> 
    <webAppSourceDirectory>${basedir}/target/${project.artifactId}-${project.version}</webAppSourceDirectory> 
    <webXml>${basedir}/target/${project.artifactId}-${project.version}/WEB-INF/web.xml</webXml> 
    </configuration> 
      <executions> 
      <execution> 
       <id>start-jetty</id> 
       <phase>pre-integration-test</phase> 
       <goals> 
        <goal>run</goal> 
       </goals> 
       <configuration> 
        <daemon>true</daemon> 
       </configuration> 
      </execution> 
      <execution> 
       <id>stop-jetty</id> 
       <phase>post-integraion-test</phase> 
       <goals> 
        <goal>stop</goal> 
       </goals> 
      </execution> 
      </executions> 
</plugin> 

私はMVNクリーンインストールし実行したときに、私はCからの出力を見ることができますommandウィンドウ:

[INFO] Configuring Jetty for project: DYI sample Console 
[INFO] Webapp source directory = /Users/dyi/Documents/workspace/sample/console/target/sample-console-0.1-SNAPSHOT 
[INFO] Reload Mechanic: automatic 
[INFO] Classes = /Users/dyi/Documents/workspace/sample/console/target/classes 
log4j:WARN No appenders could be found for logger (org.mortbay.log). 
log4j:WARN Please initialize the log4j system properly. 
[INFO] Context path = /sample-console 
[INFO] Tmp directory = determined at runtime 
[INFO] Web defaults = org/mortbay/jetty/webapp/webdefault.xml 
[INFO] Web overrides = none 
[INFO] web.xml file = /Users/dyi/Documents/workspace/sample/console/target/sample-console-0.1-SNAPSHOT/WEB-INF/web.xml 
[INFO] Webapp directory = /Users/dyi/Documents/workspace/sample/console/target/sample-console-0.1-SNAPSHOT 
[INFO] Starting jetty 6.1.22 ... 
[INFO] Started Jetty Server 
[INFO] [selenium:start-server {execution: start}] 

と私のフォルダ構造は次のようになります。

--sample/ 
    -- console/ 
     -- src/ 
     -- target/ 
      -- classes/ 
      -- sample-console-0.1-SNAPSHOT/ 
        -- css/ 
        -- images/ 
        -- img/ 
        -- index.html 
        -- js/ 
        -- META-INF/ 
        -- security/ 
        -- test.html 
        -- WEB-INF/ 
         -- classes/ 
         -- lib/ 
         -- web.xml 

私は理解していない事は、私はindex.htmlページを見ることができますです「フォルダ内に権利がある試料 - console-0.1-SNAPSHOT '、それが見つからないのはなぜですか?それは私が 'contextPath'を間違って設定したためですか?私はそれを '/'に設定しようとしましたが、503のサービスが利用できません。誰でも助けることができますか?本当にありがとう!!

答えて

0

GWTアプリで動作しないwebappディレクトリからアプリを実行しようとしているようです。このように、実行戦争する代わりに、実行のあなたの桟橋のMavenプラグインで目標を設定してみてください:

<modelVersion>4.0.0</modelVersion> 
<groupId>org.proj.web</groupId> 
<artifactId>gwtapp</artifactId> 
<packaging>war</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>gwtapp</name> 

<properties> 
    ... 
</properties> 
<dependencies> 
    ... 
</dependencies> 
<build> 
    <plugins> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.5</version> 
      <configuration> 
       <excludes> 
        <exclude>**/integration/**</exclude> 
       </excludes> 
      </configuration> 
      <executions> 
       <execution> 
        <id>integration-tests</id> 
        <phase>integration-test</phase> 
        <goals> 
         <goal>test</goal> 
        </goals> 
        <configuration> 
         <skip>false</skip> 
         <excludes> 
          <exclude>none</exclude> 
         </excludes> 
         <includes> 
          <include>**/integration/** 
        </include> 
         </includes> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <!-- Selenium and integration testing support --> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>selenium-maven-plugin</artifactId> 
      <version>1.1</version> 
      <executions>     
       <execution> 
        <phase>pre-integration-test</phase> 
        <goals> 
         <goal>start-server</goal> 
        </goals> 
        <configuration> 
         <background>true</background> 
        </configuration> 
       </execution> 
       <execution> 
        <id>stop</id> 
        <phase>post-integration-test</phase> 
        <goals> 
         <goal>stop-server</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>7.2.2.v20101205</version> 
      <configuration> 
       <webAppConfig> 
        <contextPath>/${project.name}</contextPath> 
       </webAppConfig> 
       <scanIntervalSeconds>5</scanIntervalSeconds> 
       <stopPort>9966</stopPort> 
       <stopKey>foo</stopKey> 
       <connectors> 
        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
         <port>9080</port> 
         <maxIdleTime>60000</maxIdleTime> 
        </connector> 
       </connectors> 
      </configuration> 
      <executions> 
       <execution> 
        <id>start-jetty</id> 
        <phase>pre-integration-test</phase> 
        <goals> 
         <goal>run-war</goal> 
        </goals> 
        <configuration> 
         <daemon>true</daemon> 
        </configuration> 
       </execution> 
       <execution> 
        <id>stop-jetty</id> 
        <phase>post-integration-test</phase> 
        <goals> 
         <goal>stop</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>gwt-maven-plugin</artifactId> 
      <version>2.1.0-1</version> 
      <configuration> 
       <logLevel>INFO</logLevel> 
       <style>PRETTY</style> 
       <runTarget>/gwtapp.html</runTarget> 
       <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp> 
       <modules> 
        <module>${project.groupId}.gwtapp</module> 
       </modules> 
       <copyWebapp>true</copyWebapp> 
      </configuration> 
      <executions> 
       <execution> 
        <id>gwtcompile</id> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>compile</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
    <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> 
</build> 

これは、コンパイルして実行するためにGWTはコンパイルの原因となります、あなたはそれらの設定していると仮定。正しく

あなたの設定は次のようになります場合は、あなただけのmvn clean integration-testsを実行することができ、あなたのスクリプトがします:

  • コードをコンパイルwarファイルを作成します
  • スタート桟橋:

    1. GWTあなたのコードをコンパイルしますwarファイルをjettyに展開する
    2. Seleniumサーバーを起動する
    3. 以下のいずれかのサブディレクトリでテストを実行してみてください。テストディレクトリの統合パッケージ
  • 関連する問題