博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IDEA community + Gradle + Gretty 调试 servlet 应用 + war包部署到tomcat
阅读量:5082 次
发布时间:2019-06-13

本文共 2795 字,大约阅读时间需要 9 分钟。

参考:https://guides.gradle.org/building-java-web-applications

 

1.运行和调试

IDEA创建gradle项目,项目结构如下

各个文件:

build.gradle

// https://guides.gradle.org/building-java-web-applicationsplugins {    id 'java'    id 'war'    id 'org.akhikhl.gretty' version '1.4.2'}group 'ServletDemo'version '1.0-SNAPSHOT'sourceCompatibility = 1.8repositories {    mavenCentral()}dependencies {    // https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api    providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'    testCompile group: 'junit', name: 'junit', version: '4.12'}

HelloServlet.java

package servlets;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@WebServlet(name = "HelloServlet", urlPatterns = {"hello"}, loadOnStartup = 1)public class HelloServlet extends HttpServlet {    int i = 0; // Servlet "persistence"    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws IOException {        response.getWriter().print("Hello, World! " + i++);    }    protected void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        String name = request.getParameter("name");        if (name == null) name = "World";        request.setAttribute("user", name);        request.getRequestDispatcher("response.jsp").forward(request, response);    }} ///:~

index.html

    
Servlet Demo

Say Hello

Name:

response.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>            Hello Page                

Hello, ${user}!

然后点击左侧的Gradle面板,选择任务gretty.appRun就可以启动app,通过localhost:8080访问

如果要 调试,那么在Gradle面板中选择任务gretty.appRunDebug,启动该任务后,选择Run->Edit Configurations 然后添加一个Remote Run/Debug,如下图,名为DebugServletDemo,根据gretty官方文档,默认debug port是5005,所以这里填好host和port

然后在Gradle面板中启动任务gretty.appRunDebug,如下图Run选项卡中所示,在5005端口等待Debugger的连接

接下来再启动Run->Debug->DebugServletDemo,如下图Debug选项卡中所示,Debugger已连接上5005端口

此时再次查看Run选项卡,会发现其中内容如下,点击该http链接开始调试

 

2.部署到tomcat

2.1. 打包war只需要Gradle面板中选择build.build任务即可,然后把war包放到tomcat安装目录的webapps/目录下,这里我的war包名为ServletDemo-1.0-SNAPSHOT.war

2.2. 修改tomcat安装目录下的conf/tomcat-users.xml,如下内容,从而可以使用tomcat的管理权限

2.3. 启动tomcat,访问localhost:8080,如下:

2.4. 点击"Manager App"按钮,进入如下页面,然后start ServletDemo-1.0-SNAPSHOT即可访问

2.4.1. 这里我发现war包的app不能启动,在tomcat的logs/manager.2018.xx.xx.log中发现报错Invalid <url-pattern> [hello] in servlet mapping,去HelloServlet.java中把urlPatterns="hello"改为urlPatterns="/hello"即可}改为

 

转载于:https://www.cnblogs.com/qrlozte/p/8734512.html

你可能感兴趣的文章
C++入门--1.0输入输出
查看>>
让搭建在Github Pages上的Hexo博客可以被Google搜索到
查看>>
Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段...
查看>>
在WPF控件上添加Windows窗口式调整大小行为
查看>>
背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu
查看>>
教育类APP开发现新增长,多款APP该如何突围?
查看>>
打开3389
查看>>
React学习记录
查看>>
nginx常见内部参数,错误总结
查看>>
对象与类
查看>>
《奸的好人2》财色战场----笔记
查看>>
BZOJ 1834网络扩容题解
查看>>
bzoj1878
查看>>
【Vegas原创】Mysql绿色版安装方法
查看>>
Thrift Expected protocol id ffffff82 but got 0
查看>>
分享《去哪儿网》前端笔试题
查看>>
2013-07-04学习笔记二
查看>>
CP15 协处理器寄存器解读
查看>>
【codeforces 787B】Not Afraid
查看>>
【9111】高精度除法(高精度除高精度)
查看>>