嘿亚勒,我有一个wicket-并且也是服务器相关的问题:

我们建立了一个小服务器用java(是的,我知道,为什么要重新发明轮子...我得到了很多,当我问检票邮件列表上的问题)......所以我们只要说,这是迫切需要的b / C ... ... EHM我还是想不出一个很好的理由,但不是很多,我可以做些什么......所以我终于得到了这个小服务器运行Servlet ...据我所知,跑检票口,你需要一台服务器可运行的servlet ...(为我缺乏的英语让我们只说:它应该是如Tomcat servlet容器)...现在我有这个非常美丽的服务器,没有任何人有一个想法,我有什么做的,所以我的检票应用在其上运行?我怎么告诉我的服务器,它应该运行检票程序?

希望我解释得很好... 日Thnx提前:)

... DG


OK,一点点源......我这样做下面的教程:

的HttpServer其中 “魔力” 发生的情况:

 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
}

现在的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());
 }

}
}
有帮助吗?

解决方案

简单的答案是,你将需要实现 Servlet API的。检票口的文档似乎并没有说什么确切需要的版本,但我敢肯定,这将是至少2.4。不是一份工作,我建议你这样做,这是正确地做一件很难的事情,你的只是打开你的自我痛苦的世界。

如果您需要嵌入一个服务器,则可能我建议你开始与码头和定制满足你什么都需要。码头有一个非常宽松的许可证,所以你不必担心使用的商业产品,可以扩展几乎与他们最好的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top