Java 如何让Jersey应用程序在Tomcat服务器中打印错误日志
在Jersey2.25.1的上下文中,使用一个简单的JAXB POJO bean构建了一个非常简单的REST API: 和一种资源 它运行在Tomcat服务器上 POJO-Profile中存在一个错误,因此当向Java 如何让Jersey应用程序在Tomcat服务器中打印错误日志,java,tomcat,jersey,jax-rs,trace,Java,Tomcat,Jersey,Jax Rs,Trace,在Jersey2.25.1的上下文中,使用一个简单的JAXB POJO bean构建了一个非常简单的REST API: 和一种资源 它运行在Tomcat服务器上 POJO-Profile中存在一个错误,因此当向localhost:8080/contextroot/Profile发送http请求时,我会得到一个状态为500的内部错误响应。但是,错误详细信息不会写入后端Tomcat服务器的默认日志文件中。相比之下,使用Spring框架,所有错误都将被记录 根据,可以通过将jersey.config.
localhost:8080/contextroot/Profile
发送http请求时,我会得到一个状态为500的内部错误响应。但是,错误详细信息不会写入后端Tomcat服务器的默认日志文件中。相比之下,使用Spring框架,所有错误都将被记录
根据,可以通过将jersey.config.server.tracing.type
设置为ALL
来启用跟踪支持。因此我扩展了jax.ws.rs.core.Application
,如下所示:
@ApplicationPath("contextroot")
public class ApplicationConfig extends Application {
@Override
public Map<String, Object> getProperties() {
Map<String,Object> properties = new HashMap<>();
properties.put(ServerProperties.TRACING, TracingConfig.ALL.toString());
System.out.println("Appliction is getting properties::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::");
return properties;
}
}
@ApplicationPath(“contextroot”)
公共类应用程序配置扩展应用程序{
@凌驾
公共映射getProperties(){
映射属性=新的HashMap();
properties.put(ServerProperties.TRACING,TracingConfig.ALL.toString());
System.out.println(“应用程序正在获取属性::::::::::::::::::::::::::::::::::::::::::::::”;
归还财产;
}
}
根据使用jaxrs-ri
依赖项。因此,在Tomcat服务器上启动应用程序时,这个类确实是实例化的。但是,在org.glassfish.jersey.server.ServerRuntime.process(最终ContainerRequest请求)
类的第一行进行调试时,即TracingUtils.initTracingSupport(tracingConfig,tracingThreshold,request)
,在发送请求时检测到属性jersey.config.server.tracing.type
的值仍然OFF
,这意味着根本不使用ApplicationConfig
问题:如何在Tomcat服务器上启用Jersey应用程序的跟踪支持
注意中有一个粗略的答案,但是,这个答案会将所有错误变成状态为500的内部错误,这显然是意外的
public class ProfileResource {
@Path("/profile")
@Produce(MediaType.APPLICATION_XML)
public Profile getProfile() {
Profile p = new Profile();
p.setName("test");
return p;
}
}
@ApplicationPath("contextroot")
public class ApplicationConfig extends Application {
@Override
public Map<String, Object> getProperties() {
Map<String,Object> properties = new HashMap<>();
properties.put(ServerProperties.TRACING, TracingConfig.ALL.toString());
System.out.println("Appliction is getting properties::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::");
return properties;
}
}