404未找到错误在一个简单的码头/ Maven的的Hello World Web应用程序(404 N

2019-07-31 15:20发布

我按照提示创建一个“标准Web应用程序与码头和Maven” 正是由于Eclipse的维基描述: http://wiki.eclipse.org/Jetty/Tutorial/Jetty_and_Maven_HelloWorld#Developing_a_Standard_WebApp_with_Jetty_and_Maven

然而,当我运行Web应用程序(MVN码头:运行),然后转到本地主机:8080 /您好世界/您好,我结束了在“HTTP 404错误问题访问/您好世界/你好原因:未找到”。 我已经通过文件阅读,看了看wiki页面的历史,周围的其他论坛和计算器线程戳,但无法找到答案,这个看似简单的问题。 我会后我的消息来源,但它是从字面上一样的教程。

任何帮助,将不胜感激。 我真的很想开始玩弄这种技术,但其令人沮丧保持砰到同一死胡同。

(请注意:本教程的第一部分,以打造“JettyMavenHelloWorld”做工精细我的问题是第二部分,“JettyMavenHelloWarApp”这一节的标题是“制定标准Web应用程序与码头和Maven”)

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 /主/ JAVA /组织/示例/ 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());
    }
}

JettyMavenHelloWarApp / src目录/主/ web应用/ 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目录/主/ web应用/ index.html的

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

Answer 1:

本教程给出了不正确的URL -您的应用程序上下文仍然是:“/”,这样的网址是http://localhost:8080http://localhost:8080/hello的静态和动态内容,分别。

行家码头插件文档并声称,默认情况下将被命名一样在pom.xml中的artifactId,但似乎并没有被这里工作。



Answer 2:

我遇到同样的问题,什么工作对我来说是访问应用程序,如: http://localhost:8080/hello/index.jsphttp://localhost:8080/hello/index.html ,你用什么HTML或JS网页。



Answer 3:

我认为增加配置到您的POM码头插件定义应该contextPath中更改为hello世界:

        <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的配置选项。



Answer 4:

我有同样的问题有一个基本的配置。

我想用Spring MVC 3的错误页面重定向此配置(web.xml中)

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

我通过改变来的error.html 的error.jsp的扩展解决它。



Answer 5:

我想你不跑mvn package之前的任务mvn jetty:run这就是为什么码头没有看到任何来源。 只要运行mvn package第一。



Answer 6:

你的servlet映射是不正确或不充分。

<url-pattern>/hello/*</url-pattern> // does not respond to "/hello"

您需要添加一个映射的URL模式“/你好”

<url-pattern>/hello</url-pattern>


文章来源: 404 Not Found Error in a simple Jetty/Maven Hello World webapp