`
liujiekasini0312
  • 浏览: 147178 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse下通过Maven的Jetty插件运行Web工程的配置,包括启动https

 
阅读更多

引用来源

Jetty7/8 的Maven插件配置:http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin

Jetty9 最新的Maven插件配置:http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html或者最新RELEASE版配置

Jetty 各个版本的限制:http://wiki.eclipse.org/Jetty/Starting/Jetty_Version_Comparison_Table

Jetty 7 必须 Jdk 1.5+,Servlet 2.5,类似于 Tomcat 6,文章编写时的 Release 版本:

<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.6.17.v20150415</version>
</plugin>

Jetty 8 必须 Jdk 1.6+,Servlet 3.0,类似于 Tomcat 7,文章编写时的 Release 版本:

<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>
</plugin>

Jetty 9 必须 Jdk 1.7+,Servlet 3.0+,类似于 Tomcat 8,文章编写时的 Release 版本:

<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.10.v20150310</version>
</plugin>

国内很多应用也许会去升级JDK版本,但往往还在使用Servlet2.5做开发,所以本文使用 Jetty 8 作为案例。

单独使用HTTP

步骤一

在项目的 pom.xml 里面添加如下配置:

<project>
....
<build>
....
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>
<configuration>
<scanIntervalSeconds>5</scanIntervalSeconds>
<webApp>
<contextPath>/test</contextPath>
</webApp>
</configuration>
</plugin>
</plugins>
....
</build>
....
</project>

配置说明:

  • configuration.scanIntervalSeconds 配置表示新代码的扫描时间间隔(秒),值 <= 0 表示不扫描

  • configuration.webApp.contextPath 配置表示工程的虚拟目录名

步骤二

使用Eclipse的Maven Build运行,Goals配置,如图:

这个配置表示 jetty 运行时的端口号。

jetty:run-Djetty.port=9080

另外,截图的绿色部分是因为我的Web应用的 log4j.xml 中使用了${sys:catalina.base}这个Tomcat的环境变量,在启动 Jetty 时会报错,添加了catalina.base这个配置后就可以解决这个问题了。还有一个问题是,这个配置必须配置到 Parameter 中,成为启动参数。

以上方案配置完成之后,第一次运行时,Maven会自动去下载插件依赖,编译并运行Web应用,成功之后就可以愉快的通过HTTP的形式访问亲的网站了。

混合使用HTTP和HTTPS

步骤一

pom.xml 里面的配置改为如下:

<project>
....
<build>
....
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>
<configuration>
<scanIntervalSeconds>5</scanIntervalSeconds>
<webApp>
<contextPath>/test</contextPath>
</webApp>
<connectors>
<connectorimplementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>9080</port>
</connector>
<connectorimplementation="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<port>9443</port>
<password>changeit</password>
</connector>
</connectors>
</configuration>
</plugin>
</plugins>
....
</build>
....
</project>

说明,从配置中可以看出,添加了connectors配置,一个是http的配置,一个是https的配置。

connector.port 是端口号,这个端口号必须设置,且优先级比 -Djetty.port 高。

connector.password 是 .keystore 的密码,https 连接必须设置,当前使用了 Tomcat 一样的密钥 changeit。

.keystore 文件的创建方法请查看上一篇博客Eclipse下通过Maven的Tomcat插件运行Web工程的配置,包括启用https

步骤二

单独使用HTTP的步骤二相似,但可以去掉 -Djetty.port=9080 这个配置。

以上配置完成后,运行,就可以通过 http 和 https 两种形式访问亲的网站了

总结

Jetty 的定时重载代码的实现比 Tomcat 的好很多,使用 Tomcat 的 onreload 经常修改几下就整个应用在重启,而且经常排队,非常耗时。

Jetty 的配置对 pom.xml 的侵入比较大,尤其是 http 和 https 的混合配置更是需要在 pom.xml 中配置固定的端口号,让代码看起来不够干净。

我对 Jetty 的尝试还非常粗浅,希望看到这篇博客的同学能够多多赐教。

补充

Jetty有一个问题,默认使用nio连接会把资源文件(html, css)锁定,解决方案是把nio改为bio:

<connectorimplementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>9080</port>
</connector>
<connectorimplementation="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<port>9443</port>
<password>changeit</password>
</connector>
这两个connector的配置要改为:
<connectorimplementation="org.eclipse.jetty.server.bio.SocketConnector">
<port>8080</port>
</connector>
<connectorimplementation="org.eclipse.jetty.server.ssl.SslSocketConnector">
<port>8443</port>
<password>changeit</password>
</connector>

分享到:
评论

相关推荐

    Eclipse+maven+jetty环境配置

    通过上述步骤, 我们完成了Eclipse+maven+jetty环境的基本配置。这为后续的Java开发提供了必要的工具支持, 特别是在Web应用开发中非常实用。如果遇到任何问题, 可以进一步查阅官方文档或其他在线资源。

    Eclipse+maven+jetty开发环境搭建

    - **配置Eclipse与Maven**: 在Eclipse中,通过“Window” -&gt; “Preferences” -&gt; “Maven”设置Maven的本地仓库路径和安装路径,确保Eclipse能识别Maven。 - **创建Maven项目**: 使用Eclipse的新建项目向导,选择...

    Eclipse Maven项目中配置Jetty

    在Eclipse中配置Maven项目以使用Jetty服务器是一个常见的任务,这主要适用于开发和测试阶段,因为它提供了快速的启动和重启能力。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,广泛用于Java Web应用。...

    Eclipse+_maven_+_jetty_开发web

    通过以上步骤,可以利用Eclipse集成Maven和Jetty插件快速搭建Web项目开发环境,实现高效的资源开发和调试。这套开发流程不仅可以提升开发效率,还可以保证开发过程中的代码质量,对于提高项目的整体开发质量有着重要...

    Eclipse_Maven_Jetty配置

    本文将详细介绍如何在Eclipse中配置Maven与Jetty,实现快速启动和调试Web应用。 #### 二、Eclipse中配置Jetty进行调试 ##### 2.1 准备工作 确保已经安装了以下软件: - Eclipse IDE for Java EE Developers - ...

    maven 创建web project 配置jetty运行

    总结起来,通过Maven创建Web项目并配置Jetty运行涉及的关键步骤包括: 1. 编写`pom.xml`,添加必要的依赖和插件。 2. 编写或调整`web.xml`,定义Web应用的行为。 3. 可选地,根据需要调整`webdefault.xml`。 4. 使用...

    eclipse中配置使用jetty调试web项目

    配置完成后,可以通过Eclipse的Run As菜单选择“Jetty Run”或“Jetty Debug”启动Web应用。在运行模式下,你可以通过浏览器访问`http://localhost:端口号/上下文路径`来查看应用。在调试模式下,可以设置断点并...

    使用Eclipse构建Maven的Web项目用jetty启动.docx

    使用Eclipse构建Maven的Web项目用jetty启动 在本文中,我们将详细介绍如何使用Eclipse构建Maven的Web项目,并使用jetty启动。下面是具体的步骤和知识点: 一、建立Maven项目 * 在Eclipse中,选择File -&gt; New -&gt; ...

    Eclipse与jetty插件的安装和使用

    Jetty是一个流行的Web服务器和Servlet容器,Eclipse提供了一个jetty插件来支持Jetty服务器的集成。以下是关于Eclipse与jetty插件的安装和使用的详细知识点: 安装jetty插件 要安装jetty插件,需要在Eclipse中添加...

    Maven Jetty 插件的问题(css/js等目录死锁)的解决

    如果项目中存在多个开发者,建议通过配置`pom.xml`文件来自动生成或覆盖`webdefault.xml`文件,以确保每个开发者都使用相同的配置。 - **性能考量** 虽然关闭`useFileMappedBuffer`能够解决文件被锁定的问题,但...

    使用ECLIPSE创建MAVEN工程图解

    使用ECLIPSE创建MAVEN工程图解 Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE), Maven 是一个基于项目对象模型(POM)的项目管理工具。本文将指导您如何使用Eclipse 创建 Maven 工程,并了解 Maven 的...

    jetty启动的maven web项目

    除了基本的启动方式,Jetty插件还支持许多高级特性,如热部署(自动检测代码变化并重新加载)、配置自定义服务器端口、添加额外的JAR到类路径等。通过调整`jetty-maven-plugin`的配置,可以满足各种复杂的需求。 ...

    Eclipse+Maven创建webapp项目集成jetty服务器

    你需要添加必要的依赖,包括Maven的Jetty插件和Servlet API。例如: ```xml &lt;!-- Servlet API --&gt; &lt;groupId&gt;javax.servlet &lt;artifactId&gt;javax.servlet-api &lt;version&gt;4.0.1 &lt;scope&gt;provided &lt;!--...

    使用Eclipse创建基于Maven Web工程

    为了运行Web应用,可以在pom.xml中找到Jetty插件的配置,通过右键点击项目,选择"Maven" -&gt; "Run As" -&gt; "Maven Build",在Goals栏输入"jetty:run",然后点击"Run"。Eclipse将启动Jetty服务器,并在控制台显示端口号...

    jetty+maven webapp,http,https实现的简单demo

    通过Maven的jetty插件,可以很容易地运行你的Web应用。在命令行中执行以下命令: ``` mvn jetty:run ``` 现在,你可以通过HTTP(http://localhost:8080/hello)和HTTPS(https://localhost:8443/hello)访问你的应用...

    maven+jetty

    4. 配置Jetty插件:在POM.xml中添加Jetty插件,如下: ```xml &lt;groupId&gt;org.mortbay.jetty &lt;artifactId&gt;jetty-maven-plugin &lt;version&gt;9.4.43.v20210629 &lt;contextPath&gt;/your-context-path ``` ...

Global site tag (gtag.js) - Google Analytics