嘿亞勒,我有一個wicket-,也是一個服務器相關的問題:檢票編寫自己的基於Java的服務器上
我們建立了一個小服務器用java(是的,我知道,爲什麼要重新發明輪子。 ..當我問了關於wicket-mailing-list的問題時,我得到了很多)....所以我們只是說,這是迫切需要的B/C ...呃...我仍然想不到一個很好的理由,但是我沒有太多可以做的事情......所以我最終得到了這個小服務器來運行servlet ......就我所知,要運行wicket,你需要一個可以運行servlet的服務器...... (至於我缺乏英語,我們只是說:它應該是一個像Tomcat一樣的servlet容器)...現在我有這個非常漂亮的服務器,有沒有人知道我必須做什麼,以便我的檢票口-apps在其上運行?我如何告訴我的服務器它應該運行一個wicket-app?
希望我解釋得很好... 日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
}
現在ServletProcess或:
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? – 2009-06-11 11:50:22