From 1cf034881e7005f88db97eaaa2eff19c1043ca36 Mon Sep 17 00:00:00 2001 From: Unbit Date: Mon, 15 Jul 2013 07:20:08 +0200 Subject: [PATCH] more servlet definitions --- plugins/servlet/servlet_plugin.c | 10 ++++- plugins/servlet/uwsgi_servlet.java | 72 ++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/plugins/servlet/servlet_plugin.c b/plugins/servlet/servlet_plugin.c index e33c3b40..34a32627 100644 --- a/plugins/servlet/servlet_plugin.c +++ b/plugins/servlet/servlet_plugin.c @@ -25,7 +25,7 @@ static int uwsgi_servlet_request(struct wsgi_request *wsgi_req) { static int uwsgi_servlet_setup() { uwsgi_log("loading servlet environment...\n"); - jclass servlet = uwsgi_jvm_class("CelsiusToFahrenheit"); + jclass servlet = uwsgi_jvm_class("org/apache/jasper/servlet/JspServlet"); uwsgi_log("jclass = %p\n", servlet); jmethodID mid = uwsgi_jvm_get_method_id(servlet, "", "()V"); @@ -33,6 +33,14 @@ static int uwsgi_servlet_setup() { jobject instance = (*ujvm_env)->NewObject(ujvm_env, servlet, mid); if (uwsgi_jvm_exception() || !instance) exit(1); + uwsgi_log("done\n"); + + jclass uwsgi_servlet_config = uwsgi_jvm_class("uWSGIServletConfig"); + mid = uwsgi_jvm_get_method_id(uwsgi_servlet_config, "", "()V"); + jobject config = (*ujvm_env)->NewObject(ujvm_env, uwsgi_servlet_config, mid); + + mid = uwsgi_jvm_get_method_id(servlet, "init", "(Ljavax/servlet/ServletConfig;)V"); + uwsgi_jvm_call_object(instance, mid, config ); jclass uwsgi_request = uwsgi_jvm_class("uWSGIServletRequest"); jclass uwsgi_response = uwsgi_jvm_class("uWSGIServletResponse"); diff --git a/plugins/servlet/uwsgi_servlet.java b/plugins/servlet/uwsgi_servlet.java index 997274aa..2a4876d7 100644 --- a/plugins/servlet/uwsgi_servlet.java +++ b/plugins/servlet/uwsgi_servlet.java @@ -9,6 +9,77 @@ uWSGI Servlet 2.5 Container implementation */ +class uWSGIServletContext implements ServletContext { + public Object getAttribute(String name) { + System.out.println("uWSGIServletContext getAttribute " + name); + return null; + } + + public void log(java.lang.String message, java.lang.Throwable throwable) { + System.out.println("LOG " + message); + } + + public String getRealPath(java.lang.String path) { + System.out.println("uWSGIServletContext getRealPath " + path); + return path; + } + + public String getServerInfo() { + return "uWSGI"; + } + + public String getInitParameter(java.lang.String name) { + return null; + } + + public Enumeration getInitParameterNames() { + return null; + } + + public java.util.Enumeration getAttributeNames() { + System.out.println("uWSGIServletContext getAttributeNames"); + return null; + } + + public String getServletContextName() { + System.out.println("uWSGIServletContext getServletContextName"); + return "/jsp"; + } + + public void removeAttribute(java.lang.String name) { + } + + public void setAttribute(java.lang.String name, java.lang.Object object) { + System.out.println("uWSGIServletContext setAttribute " + name); + } + +} + +class uWSGIServletConfig implements ServletConfig { + + uWSGIServletContext context; + + public uWSGIServletConfig() { + this.context = new uWSGIServletContext(); + } + + public String getInitParameter(String name) { + System.out.println("ServletConfig getInitParameter " + name); + return null; + } + + public Enumeration getInitParameterNames() { + return null; + } + + public ServletContext getServletContext() { + return this.context; + } + + public String getServletName() { + return "/jsp"; + } +} class uWSGIServletOutputStream extends ServletOutputStream { @@ -186,6 +257,7 @@ class uWSGIServletRequest implements HttpServletRequest { } public String getPathTranslated() { + System.out.println("getPathTranslated"); return null; }