2012-09-16 6 views
6

は私が「桟橋とMavenと標準WebAppの」日食ウィキに説明するように、正確にを作成する手順に従っていますwebapp(mvn jetty:run)を実行してlocalhost:8080/hello-world/helloに行きます。「HTTPエラー404/hello-world/helloへのアクセスに問題があります。理由:見つからない」になります。私はドキュメントを読んだり、wikiページの歴史を見たり、他のフォーラムやstackoverflowスレッドを突っ込んだりしていますが、この一見単純な問題に対する答えは見つけられません。私はソースを掲示しますが、それは文字通りチュートリアルと同じです。404エラーが見つかりません/ MavenののHello World Webアプリケーション

ご協力いただければ幸いです。私は本当にこの技術で遊んでみたいと思っていますが、同じ致死的な状態に陥ってしまうのは心配です。

(ご注意:。。「JettyMavenHelloWorld」作業罰金を作成するためのチュートリアルの最初の部分私の問題は、第二部、「JettyMavenHelloWarApp」であるこのセクションでは、「桟橋とMavenと標準WebAppの開発」と題している)

JettyMavenHelloWarApp /のpom.xml

<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/maven-v4_0_0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.example</groupId> 
    <artifactId>hello-world</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <name>Jetty HelloWorld</name> 

    <properties> 
    <jettyVersion>7.2.0.v20101020</jettyVersion> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>org.eclipse.jetty</groupId> 
     <artifactId>jetty-server</artifactId> 
     <version>${jettyVersion}</version> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
     <!-- This plugin is needed for the servlet example --> 
     <groupId>org.mortbay.jetty</groupId> 
     <artifactId>jetty-maven-plugin</artifactId> 
     <version>${jettyVersion}</version> 
     </plugin> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.1</version> 
     <executions> 
      <execution><goals><goal>java</goal></goals></execution> 
     </executions> 
     <configuration> 
      <mainClass>org.example.HelloWorld</mainClass> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

JettyMavenHelloWarApp/SRC /メイン/ジャワ/ ORG /例/ HelloServlet.java

package org.example; 

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class HelloServlet extends HttpServlet 
{ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     response.setContentType("text/html"); 
     response.setStatus(HttpServletResponse.SC_OK); 
     response.getWriter().println("<h1>Hello Servlet</h1>"); 
     response.getWriter().println("session=" + request.getSession(true).getId()); 
    } 
} 

ジェットtyMavenHelloWarApp/srcに/メイン/ webappの/ WEB-INF/web.xmlの

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    version="2.5"> 
    <servlet> 
    <servlet-name>Hello</servlet-name> 
    <servlet-class>org.example.HelloServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Hello</servlet-name> 
    <url-pattern>/hello/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

JettyMavenHelloWarApp/srcに/メイン/ webappの/ index.htmlを

<h1>Hello World Webapp</h1> 
<a href="/hello">Hello Servlet</a> 

答えて

11

チュートリアルでは、誤ったURL与えます - アプリのコンテキストをまだ "/"、 なので、静的コンテンツと動的コンテンツのURLはそれぞれhttp://localhost:8080http://localhost:8080/helloです。

maven jetty pluginのドキュメントでは、デフォルトコンテキストがpom.xmlのartifactIdと同じ名前になっていると主張していますが、ここでは動作していないようです。私はあなたのポンポンで桟橋のプラグインの定義に設定を追加すると、ハロー世界へのcontextPathを変更すべきだと思う

+4

申し訳ありませんが、 'http:// localhost:8080'でもアプリが見つからない場合はどうすればいいですか? – tonix

0

 <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>${jettyVersion}</version> 
      <configuration> 
       <webApp> 
        <contextPath>/hello-world</contextPath> 
       </webApp> 
      </configuration> 
     </plugin> 

これは桟橋バージョン9に基づいていますが、構成オプションについてhttp://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Pluginを参照してください。

2

私は同じ問題に遭遇しましたが、私にとっては、http://localhost:8080/hello/index.jspまたはhttp://localhost:8080/hello/index.htmlのような、htmlまたはjsページを使用しているアプリケーションにアクセスしていました。

0

私は基本的な設定で同じ問題がありました。

私は春の3 MVCで(web.xmlで)この構成でエラーページをリダイレクトしたい

<error-page> 
     <error-code>404</error-code> 
     <location>/WEB-INF/views/error.html</location> 
</error-page> 

私はerror.htmlにerror.jspの拡張子を変更することにより、それを解決します。

0

mvn packageタスクをmvn jetty:runの前に実行していないと思うので、jettyにソースが表示されません。最初にmvn packageを実行してください。

関連する問題