gpt4 book ai didi

java - 在 Eclipse 控制台中显示 Grizzly 异常

转载 作者:行者123 更新时间:2023-12-02 05:20:41 25 4
gpt4 key购买 nike

当使用 Eclipse 使用 jersey-container-grizzly2-http Maven 依赖项版本 2.13 启动简单的 REST 接口(interface)时,在浏览器中触发错误后没有显示任何异常。其他日志输出可以很好地显示在控制台中,但异常会被吞掉。

我创建了一个既没有实例化也没有调用的异常处理程序:

package mypackage.rest;
@Provider
class ExceptionHandler implements ExceptionMapper<Throwable>
{
@Override public Response toResponse(Throwable t)
{
System.out.println("toResponse called");
t.printStackTrace();
return Response.status(Status.BAD_REQUEST).entity(t.getMessage()).build();
}
}

Grizzly 服务器构建:

package mypackage.rest;
public class GrizzlyHttpUtil
{
public static final URI baseURI = UriBuilder.fromUri("http://localhost/").port(10010).build();

public static HttpServer startThisServer()
{
ResourceConfig resCon = new ResourceConfig().packages("mypackage.rest");
return server = GrizzlyHttpServerFactory.createHttpServer(baseURI, resCon);
}
}

REST API 类

package mypackage.rest;
@Path("")
public class Rest
{
@GET @Path("datasets") @Produces(MediaType.TEXT_HTML)
public static String datasets()
{
throw new RuntimeException();
}
}

更新我让它与 resCon.register(ExceptionHandler.class); 一起使用。为什么有必要?为什么 ResourceConfig().packages(...) 不自己处理这个问题?

最佳答案

我刚刚必须解决同样的问题。这是我的初始化代码,它说服 Grizzly HTTP 服务器显示错误:http://source.apidesign.org/hg/bck2brwsr/rev/18ae4fbcfb87

Logger l = Logger.getLogger("org.glassfish.grizzly.http.server.HttpHandler");
l.setLevel(Level.FINE);
l.setUseParentHandlers(false);
ConsoleHandler ch = new ConsoleHandler();
ch.setLevel(Level.ALL);
l.addHandler(ch);

我使用的是 Grizzly 2.3.3

关于java - 在 Eclipse 控制台中显示 Grizzly 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26546373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com