升级jetty-maven-plugin版本报48188异常

最近升级了MAVEN版本,由之前的2升级为3:

Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T04:58:10+08:00)
Maven home: /opt/maven3
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: /opt/java/jdk1.6.0_45/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-123.13.2.el7.x86_64", arch: "amd64", family: "unix"
配置文件中的jetty-maven-plugin还是7的,感觉有点落后了,于是就想顺便升级吧

下了个8.1.9.v20130131的版本,启动时报错:

java.lang.ArrayIndexOutOfBoundsException: 48188
不过好像不影响项目开发。具体也没详细测试。

后面在网上找到一篇资料:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=418583

I also get this with 9.0.5.v20130815.

In 9.0.4.v20130625 the error changes, and jetty seems to be able to continue:

于是就把icu4j包换成最新,启动正常了。



在另一个项目中,升级了8.1.9.v20130131的版本,启动时也报这个错。

但项目中没有用到icu4j,后来在一篇文章中找到一个解决方案:

将:<dependency>
   <groupId>jaxen</groupId>
   <artifactId>jaxen</artifactId>
   <version>1.1.1</version>
  </dependency>

这一段注释掉。

此配置与Jersey的Rest服务冲突导致报错。
Jaxen的是一个Java编写的开源的XPath库。这是适应多种不同的对象模型,包括DOM,XOM,dom4j和JDOM。也可以作为适配器,转换Java字节代码或XML的Java bean为xml。


### 使用 Jetty Maven Plugin 的方法 Jetty 是一种轻量级的 Java Web 容器,`jetty-maven-plugin` 插件允许开发者通过 Maven 构建工具快速启动嵌入式的 Jetty 服务器来运行 Web 应用程序。以下是关于如何在 Maven 项目中配置和使用 `jetty-maven-plugin` 的详细介绍。 #### 配置插件 要在 Maven 项目中使用 `jetty-maven-plugin`,需要将其添加到项目的 `pom.xml` 文件中的 `<build>` 节点下: ```xml <build> <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.43.v20210629</version> <!-- 本号可根据需求调整 --> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <!-- 自动扫描文件变化的时间间隔 --> <webApp> <contextPath>/myapp</contextPath> <!-- 设置应用上下文路径 --> </webApp> <httpConnector> <port>8081</port> <!-- 修改默认端口为 8081 --> </httpConnector> </configuration> </plugin> </plugins> </build> ``` 上述配置说明如下: - **`<groupId>` 和 `<artifactId>`**:定义了使用的插件名称及其所属组。 - **`<version>`**:指定了插件的具体本号[^1]。 - **`<scanIntervalSeconds>`**:设置自动重新加载应用程序的时间间隔(单位秒),适用于开发环境下的热部署功能。 - **`<contextPath>`**:设定访问该 Web 应用时的 URL 上下文路径。 - **`<port>`**:更改默认监听端口以避免与其他服务冲突[^3]。 #### 启动 Jetty 服务器 完成以上配置后,在命令行界面切换至项目根目录并执行以下指令即可启动 Jetty 服务器: ```bash mvn jetty:run ``` 此操作会依据之前所设参数初始化一个基于 Jetty 的 HTTP Server 实例,并使其处于等待请求状态直至手动终止进程为止[^2]。 如果遇到类似于 `[ERROR] Failed to execute goal...Address already in use` 这样的错误提示,则可能是因为目标端口被其他程序占用所致;此时可以考虑更换未被占用的新端口号或者关闭占据当前端口的服务实例后再尝试重启 Jetty。 另外值得注意的是,当面对更复杂的场景比如 SSL 支持或是多模块工程集成等情况时,还需要进一步扩展相应的配置选项才能满足实际需求。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值