maven一波流(5)——如何部署maven web项目

简介: maven一波流(5)——如何部署maven web项目

编写一个servlet用于测试

为了测试部署之后项目可用,我们至少得写一个servlet。


在src/mian/java下新建包:com.panda.webdemo.servlet,并在该包新建类:HelloServlet,代码如下:


@WebServlet("/hello")

public class HelloServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

   public HelloServlet() {

       super();

   }

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

 response.getWriter().write("Hello World");

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

 doGet(request, response);

}

}


注意该servlet通过注解@WebServlet标注,所以访问/hello即指向该Servlet。


如果访问成功,则输出Hello World。


部署方法1——手工打包、手工部署

最简单的,直接右键单击项目-run as-maven install,控制台输出:


[INFO] --- maven-install-plugin:2.4:install (default-install) @ webdemo ---

[INFO] Installing D:\\Workspace\\EclipsePhoton\\webdemo\\target\\webdemo.war to G:\\MavenRepo\\com\\panda\\webdemo\\0.0.1-SNAPSHOT\\webdemo-0.0.1-SNAPSHOT.war


将webdemo/target/webdemo.war手工拷贝到tomcat下webapps下,启动tomcat,访问如下地址,注意我的tomcat端口设为默认的80,所以可以不用写端口号。


http://127.0.0.1/webdemo/hello

1

打开浏览器,在浏览器地址栏输入上述地址,网页显示:


Hello World

1

大功告成。


但是每次打包都需要手工拷贝部署也太麻烦了,尤其是在开发阶段,这个没关系,maven通过插件提供了更快捷的部署方式。


部署方法2——通过maven-jetty-plugin插件部署

首先添加插件,添加方式很简单,在pom.xml中添加一个插件坐标即可,maven会自动将坐标对应插件弄到项目中来。


<build>

 <finalName>webdemo</finalName>

 <plugins>

  <plugin>

   <groupId>org.mortbay.jetty</groupId>

   <artifactId>jetty-maven-plugin</artifactId>

   <version>8.1.15.v20140411</version>

   <configuration>

    <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>

    <webApp>

     <!-- 注意,如果不配置该参数,则访问地址为127.0.0.1:8080/hello -->

     <!-- 配了,则访问:127.0.0.1:8080/webdemo/hello  -->

     <contextPath>/webdemo</contextPath>

    </webApp>

    <connectors>

     <connector

      implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">

      <!-- 指定端口 -->

      <port>8080</port>

      <maxIdleTime>60000</maxIdleTime>

     </connector>

    </connectors>

   </configuration>

  </plugin>

 </plugins>

</build>


然后选中项目,右击项目名-Run as-Maven Build…,在项目配置窗口中的Goals项输入:jetty:run,然后点击Run按钮运行。


然后就不幸报错了,这个错原因是端口被占用,


Exception in thread "Shutdown" java.lang.NoClassDefFoundError: org/apache/jasper/runtime/JspApplicationContextImplException in thread "Shutdown" java.lang.NoClassDefFoundError: org/apache/jasper/runtime/JspApplicationContextImpl

1

仔细查看控制台日志发现[INFO] Stopped SelectChannelConnector@0.0.0.0:8080,说明应该是8080被占用了,OK,我习惯使用TCPView直接干掉8080口进程。


然后再次Run as-Maven Build,注意因为之前已经配置过插件,所以点击后直接运行了。


控制台此次输出,说明启动成功。


[INFO] Started SelectChannelConnector@0.0.0.0:8080

[INFO] Started Jetty Server


在浏览器地址栏输入:http://127.0.0.1:8080/webdemo/hello,页面显示Hello World。


大功告成。

相关文章
|
5天前
|
应用服务中间件 Linux nginx
部署使用 CHAT-NEXT-WEB 基于 Deepseek
本文介绍如何在阿里云轻量服务器上部署基于 `Deepseek` 的 `CHAT-NEXT-WEB` 项目。首先,准备一台 Linux 服务器并安装 Docker,确保防火墙允许特定端口访问。接着,通过阿里云容器镜像服务解决国内网络限制问题,将镜像推送到私有仓库并拉取到本地。配置并启动 `chat-next` 项目,使用 Deepseek API 进行优化。最后,安装 Nginx 和 Certbot 配置 HTTPS 访问,确保安全性和自动续签。整个过程需严格遵循官方文档,以避免因网络问题导致的安装失败。
|
6天前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
29 7
|
3月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
118 61
|
3月前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
60 8
|
3月前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
53 7
|
3月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
3月前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
220 1
|
3月前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
88 0
|
4月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
259 3
|
3月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
156 62

热门文章

最新文章

推荐镜像

更多