Grizzly und ServletContainerContext

Ich versuche zu ergattern, injiziert Kontext (z.B. Session oder HttpServletRequest) in einen Servlet-Container, den ich geschrieben habe, läuft auf Grizzly, aber nichts, was ich tun scheint zu funktionieren. Der ganze Prozess scheint zu hängen eher vorzeitig mit der folgenden Fehlermeldung:

SEVERE: Missing dependency for field: javax.servlet.http.HttpServletRequest com.test.server.LolCat.hsr

Dem server ist tot einfach, es besteht aus zwei Dateien, die statischen Einstiegspunkt (Main.java):

package com.test.server;

import java.io.IOException;
import java.net.URI;
import javax.ws.rs.core.UriBuilder;

import org.glassfish.grizzly.http.server.HttpServer;
import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory;
import com.sun.jersey.api.core.ClassNamesResourceConfig;
import com.sun.jersey.api.core.ResourceConfig;

public class Main {

    private static URI getBaseURI() {
        return UriBuilder.fromUri("http://localhost/").port(8080).build();
    }

    public static final URI BASE_URI = getBaseURI();

    public static void main(String[] args) throws IOException {
        ResourceConfig rc = new ClassNamesResourceConfig(LolCat.class);
        HttpServer httpServer = GrizzlyServerFactory.createHttpServer(BASE_URI, rc);
        System.in.read();
        httpServer.stop();
    }
}

und das serlvet (LolCat.java):

package com.test.server;

import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;

@Path(value = "/lol")
public class LolCat {

    @Context HttpServletRequest hsr;

    @GET
    @Path(value="/cat")
    public String list() {
        return "meow";
    }

}

Speziell, es ist der @Context-Zeile im obigen Quellcode-Datei, die die Quelle und Lösung für alle meine Probleme. Ich brauche es, und nach allem, was ich gelesen habe, über Jersey und Servlets sollte es funktionieren, aber leider ist es nicht. Ich habe auch versucht, mit Hilfe GrizzlyWebContainerFactory statt der GrizzlyServerFactory, aber ohne Erfolg.

Referenz, das Projekt kompiliert wird mit den folgenden Abhängigkeiten:

  • org.glassfish.grizzly:grizzly-Rahmen:Glas:2.2.21
  • org.glassfish.grizzly:grizzly-http:jar:2.2.21
  • org.glassfish.grizzly:grizzly-http-servlet:jar:2.2.21
  • org.glassfish.grizzly:grizzly-http-server:jar:2.2.21
  • com.Sonne.jersey:jersey-server:jar:1.17
  • com.Sonne.jersey:jersey-servlet:jar:1.17
  • com.Sonne.jersey:jersey-core:jar:1.17
  • javax.servlet:javax.servlet-api:jar:2.5.0
  • com.Sonne.jersey:jersey-grizzly2:jar:1.17
  • com.Sonne.jersey:jersey-grizzly2-servlet:jar:1.17
  • asm:asm:jar:3.3.1
InformationsquelleAutor Mic | 2013-04-02
Schreibe einen Kommentar