Wie aktivieren Sie die Ablaufverfolgung in Jersey WS fordert, dass bei der Verwendung von Guice servlet eine Konfiguration

Ich versuche, aktivieren Sie die Ablaufverfolgung, um debug-Jersey-WS-Aufruf. Ich habe versucht, das hinzufügen des init-param beschrieben hier, sowohl in meiner Guice servlet-config und in der web.xml, aber kann nicht scheinen, um es zu arbeiten.

Hier ist, was die Guice-servlet-config sieht wie folgt aus:

public class GuiceServletConfig extends GuiceServletContextListener
{
private static final Logger log = LoggerFactory.getLogger(GuiceServletConfig.class);

public GuiceServletConfig()
{
    super();
    log.debug("creating GuiceServletConfig");
}



private static class ServletModule extends JerseyServletModule {
    private InputStream getInputStream() throws FileNotFoundException {
        File file = new File("tmp");
        String pathToTempFile = file.getAbsolutePath();
        log.debug("path to config: {}", pathToTempFile);
        String pathWithoutTmp = pathToTempFile.substring(0,
            pathToTempFile.indexOf(File.separator + "tmp"));
        StringBuilder stringBldr = new StringBuilder(pathWithoutTmp)
            .append(File.separator).append("extensions")
            .append(File.separator).append("__lib__")
            .append(File.separator).append("gelato.config.properties");
        log.debug("loading guice properties from: {}",  stringBldr.toString());
        return new FileInputStream(new File(stringBldr.toString()));
    }

    @Override
    protected void configureServlets() {
        Properties properties = new Properties();
        try {
            InputStream is = getInputStream();
            properties.load(is);
            Names.bindProperties(binder(), properties);
        } catch (Exception ex) {
            log.error("Error binding properties: {}", ex.toString());
        }
        //Must configure at least one JAX-RS resource or the
        //server will fail to start.
        //Must configure at least one JAX-RS resource or the
        //server will fail to start.
        bind(UserResource.class);
        bind(PlayersManager.class).to(GelatoPlayersManager.class);
        bind(MessageHandler.class).to(SFSMessageHandler.class);
        Map<String, String> params = new HashMap<String, String>();
        params.put(PackagesResourceConfig.PROPERTY_PACKAGES, "org.buffalo.gelato.resources");
        //Route all requests through GuiceContainer
        params.put("com.sun.jersey.config.feature.Trace", "true");
        serve("/rest/*").with(GuiceContainer.class, params);
    }
}

und ich habe auch versucht, nur indem Sie in die web.xml aber ich nehme an, dass dies ignoriert wird, da bin ich konfiguriert Jersey via Guice.

<servlet>
    <servlet-name>Jersey REST Service for value codes</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.feature.Trace</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>
  • Dein Erster Ansatz der richtige ist (das zweite wird nicht funktionieren, wie Sie bereits erwähnt). Sehen Sie nicht X-Jersey-Trace-* HTTP-Header in Ihre Antworten?
  • Danke für die Antwort. Nein, ich sehe einige log-Meldungen, die ich Hinzugefügt, um meine Methode, die aufgerufen wird, aber nichts von Jersey. Ich werde versuchen zu tun, ein Beispiel ohne Guice in der Art und Weise, und sehen, ob das vielleicht etwas damit zu tun.
  • Ich verfolgte ihn durch den debugger, und ich sehe in WebApplicationImpl, es ist die Einstellung isTraceEnabled, um wahr zu this.isTraceEnabled = resourceConfig.getFeature(ResourceConfig.FEATURE_TRACE) | resourceConfig.getFeature(ResourceConfig.FEATURE_TRACE_PER_REQUEST); ich bin mit jersey-bundle 1.14.
  • Ich glaube, ich fand heraus, was falsch ist, diese Spuren gehen zurück an den client aufrufen kann, und ich bin auf der Suche nach Ihnen in eine server-side-log-Datei!!
InformationsquelleAutor Alper Akture | 2013-08-15
Schreibe einen Kommentar