You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装OracleXE后Vaadin项目Jetty启动报错退出问题求助

从错误日志中的Address already in use: bind可以判断,Jetty默认使用的8080端口已经被其他进程占用,结合你安装Oracle XE 11g的操作可知,Oracle XE 11g内置的HTTP管理服务默认会占用8080端口,这是问题的根本原因。你之前访问8080弹出的用户名密码验证框是Oracle的管理界面验证,和你的Vaadin项目无关。

解决方案

方案1:修改Jetty启动端口(操作最简单,无需修改Oracle配置)

有两种修改方式可选:

  • 临时修改运行端口:运行Maven启动命令时追加端口参数,命令如下:
    mvn jetty:run -Djetty.port=8081
    启动后访问localhost:8081即可打开你的Vaadin项目,端口可自行替换为其他未被占用的端口。
  • 永久修改Jetty插件配置:打开项目的pom.xml,找到jetty-maven-plugin的配置节点,添加httpPort配置项,示例如下:
<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>9.3.9.v20160517</version>
    <configuration>
        <httpPort>8081</httpPort>
        <!-- 原有其他配置保留即可 -->
    </configuration>
</plugin>

修改后正常启动Jetty即可默认使用8081端口。

方案2:修改Oracle XE默认HTTP端口(适合需要继续使用8080端口跑项目的场景)

修改Oracle XE的内置HTTP服务端口,释放8080端口:

  1. 打开SQL Plus,使用system或sys管理员账户登录Oracle
  2. 执行以下命令修改HTTP端口为其他未被占用的端口(示例为8082,可自行调整):
    exec dbms_xdb.sethttpport(8082);
  3. 执行提交命令:
    commit;
  4. 重启Oracle XE相关服务,之后Oracle的HTTP服务就会使用新端口,8080端口释放后即可正常启动Jetty。

临时解决方案(设备重启后会失效)

如果只是临时测试,可以直接杀掉占用8080端口的进程:

  1. 打开命令提示符,执行以下命令查询占用8080端口的进程PID:
    netstat -ano | findstr :8080
  2. 执行命令杀掉对应进程,将尖括号内容替换为查询到的PID号:
    taskkill /F /PID <PID号>
    杀掉进程后即可正常启动Jetty。

内容的提问来源于stack exchange,提问作者Zrebna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:30:05