Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让Jersey应用程序在Tomcat服务器中打印错误日志_Java_Tomcat_Jersey_Jax Rs_Trace - Fatal编程技术网

Java 如何让Jersey应用程序在Tomcat服务器中打印错误日志

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.

在Jersey2.25.1的上下文中,使用一个简单的JAXB POJO bean构建了一个非常简单的REST API:

和一种资源

它运行在Tomcat服务器上

POJO-Profile中存在一个错误,因此当向
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;
    }
}