使用Javalin创建端点时遇连接拒绝错误,求排查代码问题
问题排查与解决
核心问题分析
你的代码存在两个关键问题,直接或间接导致了连接被拒绝的错误:
1. 路由参数定义错误
你写的路由/firstname/{Kevin}是错误的语法:Javalin中路由大括号里的是参数占位符(比如{name}),不是具体的参数值。
- 如果需求是匹配
/firstname/Kevin这个固定路径,应该去掉大括号,写成:
app.get("/firstname/Kevin", ctx -> { ctx.result("Kevin"); });
- 如果是想接收任意名字作为参数(比如
/firstname/Alice也能匹配),才需要用占位符:
app.get("/firstname/{name}", ctx -> { String name = ctx.pathParam("name"); ctx.result(name); });
2. 服务未启动
你贴的代码里没有调用Javalin的启动方法。服务必须通过start()指定端口才能运行,否则程序只是创建了Javalin实例,但没有启动HTTP服务,自然会出现连接被拒绝。
需要在代码末尾添加启动逻辑,比如指定端口7000:
app.start(7000); // 启动服务,监听7000端口
完整可运行的示例代码如下:
public static void main(String[] args) { Javalin app = Javalin.create(); app.get("/firstname/Kevin", ctx -> { ctx.result("Kevin"); }); app.start(7000); // 必须调用start启动服务 }
额外检查点
- 确认启动的端口和你访问的端口一致,比如代码里用7000,浏览器就要访问
http://localhost:7000/firstname/Kevin - 检查端口是否被其他程序占用,如果占用可以更换端口,比如
app.start(8080)
内容的提问来源于stack exchange,提问作者Eyesusawit
相关产品推荐
相关产品推荐

