1

我通过'gradle appRun'启动我的servlet,码头响应contextPath ='/var/www'而不是servlet直接或附加到/var/www。

这是一个由两部分组成的问题,如果我可以在 gretty 下配置码头日志记录,也许我会看到 404 的答案。这是代码、配置和结果。请注意,我使用 HTTP: 表示“http[s]://”,因为堆栈溢出限制了我:

------------- Servlet 摘录

package com.priot.servlet;

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

public class GetNext extends HttpServlet {

    private static final Logger log = LogManager.getLogger();

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException  {

        String remoteHost = req.getRemoteHost();
        log.info("GetNext GET " + remoteHost);

        res.setContentType( "text" );
        PrintWriter out = res.getWriter();

        out.println("Hello World from GetNext");

        out.close();
    }
}

--------------- web.xml

<web-app version="2.5" (can't post links) ... /xml/ns/javaee/webapp_2_5.xsd">

<servlet>
    <servlet-name>getnext</servlet-name>
    <servlet-class>com.priot.servlet.GetNext</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>getnext</servlet-name>
    <url-pattern>/getnext</url-pattern>
</servlet-mapping>

</web-app>

---------------- build.gradle

apply plugin: 'java'
apply plugin: 'war'
apply from: 'HTTPS:raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'

dependencies {
    compile "javax.servlet:servlet-api:2.5"
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.3'
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.3'
}

repositories {
    mavenCentral()
    jcenter()
}

war {
    webXml = file('src/web.xml') // copies to WEB-INF/web.xml
}

gretty {
    port = 8080
    contextPath = '/var/www'
    servletContainer = 'jetty9'
}

- - - - - - - - 跑

::: 1号航站楼

priot proj> gradle appRun :prepareInplaceWebAppFolder 最新 :createInplaceWebAppFolder 最新 :compileJava 最新 :processResources 最新 :classes 最新 :prepareInplaceWebAppClasses 最新 :prepareInplaceWebApp UP -TO-DATE :appRun 13:10:18 INFO Jetty 9.2.10.v20150310 启动并监听端口 8080 13:10:18 INFO var/www 运行于:13:10:18 INFO HTTP:localhost:8080/var/ www 按任意键停止服务器。

构建 87% > :appRun

::: 终端 2 - /var/www 但没有 /getnext 或 /var/www/getnext

priot ~> curl HTTP:localhost:8080/var/www priot ~>

priot ~> curl HTTP:localhost:8080/getnext ... HTTP 错误:404 访问 /getnext 时出现问题。原因:未找到 Powered by Jetty

priot ~> curl HTTP:localhost:8080/var/www/getnext ... HTTP ERROR 404 访问 /var/www/getnext 时出现问题。原因:未找到< 由 Jetty 提供支持:

4

0 回答 0