2010-12-08 27 views
2

Je viens de commencer avec Embedded Jetty. Je suis coincé à quelques messages d'erreur. C'est un code de lignes simple et direct, que j'ai trouvé en ligne et que je voulais tester.Premiers pas avec Embedded Jetty

import org.jaxen.Context; 
import org.mortbay.jetty.Server; 
import org.mortbay.jetty.servlet.ServletHolder; 

public class Main { 

    public static void main(String[] args) throws Exception { 

     ServletHolder sh = new ServletHolder(ServletContainer.class); 
     sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig"); 
     sh.setInitParameter("com.sun.jersey.config.property.packages", "jerseyplusjetty"); 
     Server server = new Server(80); 
     ServletContextHandler sch = new ServletContextHandler(server, "/"); 
     sch.addServlet(sh, "/*"); 
     server.start(); 
     server.join(); 

    } 
} 

J'ai tous les jets jetty dans le chemin de construction java. Mais j'ai continué à recevoir des erreurs: Le constructeur ServletHolder (Class) n'est pas défini, Le constructeur Server (int) n'est pas défini, ServletContextHandler ne peut pas être résolu en un type. Si je supprime le paramètre dans ServletHolder et Server, il cesse de se plaindre. par exemple. si j'ai: ServletHolder sh = new ServletHolder(); Serveur serveur = nouveau serveur(); Mais ce n'est pas correct. Je lis les docs Jetty et la classe ServletHolder peut prendre des paramètres. Est-ce que j'ai râté quelque chose?

Répondre

1

La version de ServletHolder que j'ai prend une chaîne ou une servlet dans le constructeur. Donc, au lieu de le faire, vous devriez faire new ServletHolder(ServletContainer.class.getCanonicalName()) ou new ServletHolder(new ServletContainer()). ServletContainer est un nom étrange pour une servlet, assurez-vous qu'il s'agit bien d'une servlet. De plus, sachez qu'il existe un certain nombre de versions différentes de Jetty (vous en utilisez une ancienne, car dans la nouvelle toutes les classes sont dans le paquet org.eclipse.jetty), et il est facile de prendre exemple code qui se réfère à une version différente de celle que vous avez. Je voudrais obtenir jetée 7.2.2 de maven et utiliser le code d'exemple here.

3

Juste FYI sur Embedded Jetty en général ... J'ai créé un projet github que je soumets humblement peut couvrir la plupart des problèmes de jets embarqués qui ne cessent de surgir.

J'ai des exemples pour AbstractHandlers, Servlets, Jersey Servlets, fichiers statiques, webapps et autres. Je travaille toujours sur RoR et Sinatra, mais j'y arriverai.

Voir https://github.com/ZenGirl/EmbeddedJettyRepository pour plus de détails. Tout le monde veut contribuer, il suffit de demander.