Question

Hey yall, j'ai un wicket- et aussi une question relative serveur:

Nous avons construit un petit serveur avec java (ouais, je sais, pourquoi réinventer la roue ... Je suis arrivé que beaucoup quand je posé la question sur la liste de guichet-mailing) .... donc nous allons juste par exemple, il est absolument nécessaire b / c ... euh ... Je ne peux pas penser à une bonne raison, mais il n'y a pas beaucoup que je peux faire à ce sujet ... donc j'ai finalement eu ce petit serveur pour exécuter servlets ... pour autant que je sache, pour exécuter vous besoin d'un guichet serveur qui peut fonctionner servlets ... (comme pour mon manque de l'anglais disons simplement: il est censé être un conteneur de servlets comme tomcat) ... maintenant que Je n'ai ce serveur très beau, ce que quelqu'un a une idée de ce que je dois faire, de sorte que ma course portillons-apps sur elle? comment puis-je dire à mon serveur qu'il est censé exécuter une application de guichet?

L'espoir je bien expliqué ... thnx à l'avance:)

... dg


ok, un peu la source ... Je l'ai fait suite à un tutoriel:

HttpServer où la "magie" se produit:

 while (!shutdown) {
  // ... all the stuff before

    //check if this is a request for a servlet or a static resource
    //a request for a servlet begins with "/servlet/"
    if (request.getUri().startsWith("/servlet/")) {
        System.out.println( "SERVLET-REQUEST\n\n" );
      ServletProcessor2 processor = new ServletProcessor2();
      processor.process(request, response);
    }
    else {
        System.out.println( "STATICRESOURCE-REQUEST" );
      StaticResourceProcessor processor = new StaticResourceProcessor();
      processor.process(request, response);
    }
 // ... all the stuff after
}

Maintenant, le ServletProcessor:

public class ServletProcessor2 {

public void process(Request request, Response response) {

 String uri = request.getUri();
 String servletName = uri.substring(uri.lastIndexOf("/") + 1);
 System.out.println( "SERVLETNAME ... " + servletName );
 URLClassLoader loader = null;

try {
   // create a URLClassLoader
   URL[] urls = new URL[1];
   URLStreamHandler streamHandler = null;
   File classPath = new File(Constants.WEB_ROOT);
   // the forming of repository is taken from the createClassLoader method in
   // org.apache.catalina.startup.ClassLoaderFactory
   String repository = (new URL("file", null, classPath.getCanonicalPath() + File.separator)).toString() ;
   System.out.println( "REPOSITORY ... " + repository );
   // the code for forming the URL is taken from the addRepository method in
   // org.apache.catalina.loader.StandardClassLoader class.
   urls[0] = new URL(null, repository, streamHandler);
   loader = new URLClassLoader(urls);
 }
 catch (IOException e) {
   System.out.println(e.toString() );
 }
 Class myClass = null;
 try {
   myClass = loader.loadClass(servletName);
 }
 catch (ClassNotFoundException e) {
   System.out.println("FEHLER: " + e.toString() + " ... CAUSE: " + e.getCause() );
   e.printStackTrace();
 }

 Servlet servlet = null;
 RequestFacade requestFacade = new RequestFacade(request);
 ResponseFacade responseFacade = new ResponseFacade(response);
 try {
     servlet = (Servlet) myClass.newInstance();
     servlet.service((ServletRequest) requestFacade, (ServletResponse) responseFacade);
 }
 catch (Exception e) {
   System.out.println( "Fehler: " + e.toString() + " ... CAUSE: " + e.getCause() );
   e.printStackTrace();
 }
 catch (Throwable e) {
   System.out.println(e.toString());
 }

}
}
Était-ce utile?

La solution

la réponse simple est que vous aurez besoin de mettre en œuvre le API Servlet . La documentation ne semble pas wicket dire ce que la version exacte nécessaire, mais je suis sûr que ce sera au moins 2,4. Pas un emploi Je vous recommande de le faire, il est une chose difficile à faire correctement et votre juste d'ouvrir votre auto à un monde de douleur.

Si vous avez besoin d'intégrer un serveur alors peut-être je vous recommande de commencer par jetée et personnaliser pour répondre à ce que jamais les besoins que vous avez. Jetty a une licence très permissive de sorte que vous n'avez pas à vous soucier de l'utilisation dans un produit commercial et peut évoluer à peu près avec les meilleurs d'entre eux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top