Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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 LoggingFeature:在web.xml中_Java_Jersey 2.0 - Fatal编程技术网

Java Jersey LoggingFeature:在web.xml中

Java Jersey LoggingFeature:在web.xml中,java,jersey-2.0,Java,Jersey 2.0,我正在努力让Jersey Logging功能正常工作。 但我能找到的所有示例都使用ResourceConfig显式注册它 我没有ResourceConfig或Application子类,如何从web.xml启用LoggingFeature 编辑: 我试过: <servlet> <servlet-name>myApp</servlet-name> <servlet-class>org.glassfish.jersey.servlet.

我正在努力让Jersey Logging功能正常工作。 但我能找到的所有示例都使用ResourceConfig显式注册它

我没有ResourceConfig或Application子类,如何从web.xml启用LoggingFeature

编辑:

我试过:

<servlet>
    <servlet-name>myApp</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

    ...
    <init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>org.glassfish.jersey.logging.LoggingFeature</param-value>
    </init-param>

  </servlet>

myApp
org.glassfish.jersey.servlet.ServletContainer
...
jersey.config.server.provider.classnames
org.glassfish.jersey.logging.LoggingFeature
以及:

<servlet>
    <servlet-name>myApp</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        ...
    </init-param>

    <init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>org.glassfish.jersey.logging.LoggingFilter</param-value>
    </init-param>

  </servlet>

myApp
org.glassfish.jersey.servlet.ServletContainer
...
jersey.config.server.provider.classnames
org.glassfish.jersey.logging.LoggingFilter

记录请求的两种方法,无需
应用程序
子类

一种方法是在
web.xml
文件中声明
LoggingFilter

<init-param>
    <param-name>jersey.config.server.provider.classnames</param-name>
    <param-value>org.glassfish.jersey.filter.LoggingFilter</param-value
</init-param>

在web.xml中声明它对我不起作用。如果我将ResourceConfig子类化并在那里注册LoggingFeature/Filter,它就会工作。
是servlet容器声明的参数,我猜您可能只是将
粘贴到
web.xml
文件中的其他地方了?不,我将它放在标记中,同时在web.xml中声明servlet。无论如何,如果我把它放在其他地方,它会在IDE上给我错误。
import java.io.IOException;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.ext.Provider;

@Provider
public class MyLoggingFilter implements ContainerRequestFilter {

    @Override
    public void filter(ContainerRequestContext requestContext) throws IOException {
        // replace by your own logging code
        System.out.printf("%s %s\n", requestContext.getMethod(), requestContext.getUriInfo().getPath());
    }
}