diff --git a/plugins/jvm/jvm.h b/plugins/jvm/jvm.h index 0ed85975..507c8f1c 100644 --- a/plugins/jvm/jvm.h +++ b/plugins/jvm/jvm.h @@ -1,4 +1,4 @@ -#include "../../uwsgi.h"; +#include "../../uwsgi.h" #include #define MAX_CLASSPATH 64 diff --git a/plugins/jvm/jvm_plugin.c b/plugins/jvm/jvm_plugin.c index 82d592f9..638cda5c 100644 --- a/plugins/jvm/jvm_plugin.c +++ b/plugins/jvm/jvm_plugin.c @@ -1,4 +1,4 @@ -#include "jvm.h"; +#include "jvm.h" /* diff --git a/plugins/jvm/uwsgiplugin.py b/plugins/jvm/uwsgiplugin.py index c51bc268..9464e02d 100644 --- a/plugins/jvm/uwsgiplugin.py +++ b/plugins/jvm/uwsgiplugin.py @@ -2,8 +2,13 @@ import os,sys NAME='jvm' -JVM_INCPATH = "/Developer/SDKs/MacOSX10.6.sdk//System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Headers/" -JVM_LIBPATH = "/Developer/SDKs/MacOSX10.6.sdk//System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Libraries/ -framework JavaVM" +# Snow Leopard +#JVM_INCPATH = "/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Headers/" +#JVM_LIBPATH = "/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Libraries/ -framework JavaVM" + +# Ubuntu +JVM_INCPATH = "/usr/lib/jvm/java-6-sun-1.6.0.15/include/ -I/usr/lib/jvm/java-6-sun-1.6.0.15/include/linux" +JVM_LIBPATH = "/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/i386/server/" CFLAGS = ['-I' + JVM_INCPATH] diff --git a/plugins/jwsgi/jwsgi_plugin.c b/plugins/jwsgi/jwsgi_plugin.c index f94fa5b5..57cb555f 100644 --- a/plugins/jwsgi/jwsgi_plugin.c +++ b/plugins/jwsgi/jwsgi_plugin.c @@ -42,6 +42,7 @@ int uwsgi_jwsgi_request(struct wsgi_request *wsgi_req) { uwsgi_log("jwsgi method id = %d\n", jmid); env = uwsgi_jvm_ht_new(); + uwsgi_jvm_exception(); for(i=0;ivar_cnt;i++) { @@ -56,20 +57,24 @@ int uwsgi_jwsgi_request(struct wsgi_request *wsgi_req) { i++; } + uwsgi_log("env created\n"); uwsgi_jvm_ht_put(env, uwsgi_jvm_str("jwsgi.input"), uwsgi_jvm_fd(wsgi_req->poll.fd)); + + uwsgi_log("jwsgi.input created\n"); response = (*ujvm.env)->CallObjectMethod(ujvm.env, ujvm.main_class, jmid, env); + uwsgi_jvm_exception(); uwsgi_log("RESPONSE SIZE %d\n", (*ujvm.env)->GetArrayLength(ujvm.env, response)); status = uwsgi_jvm_array_get(response, 0); uwsgi_jvm_exception(); - write(wsgi_req->poll.fd, wsgi_req->protocol, wsgi_req->protocol_len); - write(wsgi_req->poll.fd, " ", 1); - write(wsgi_req->poll.fd, uwsgi_jvm_str2c(status), uwsgi_jvm_strlen2c(status)); - write(wsgi_req->poll.fd, "\r\n", 2); + wsgi_req->headers_size += write(wsgi_req->poll.fd, wsgi_req->protocol, wsgi_req->protocol_len); + wsgi_req->headers_size += write(wsgi_req->poll.fd, " ", 1); + wsgi_req->headers_size += write(wsgi_req->poll.fd, uwsgi_jvm_str2c(status), uwsgi_jvm_strlen2c(status)); + wsgi_req->headers_size += write(wsgi_req->poll.fd, "\r\n", 2); headers = uwsgi_jvm_array_get(response, 1); @@ -84,13 +89,13 @@ int uwsgi_jwsgi_request(struct wsgi_request *wsgi_req) { hkey = uwsgi_jvm_array_get(header, 0); hval = uwsgi_jvm_array_get(header, 1); - write(wsgi_req->poll.fd, uwsgi_jvm_str2c(hkey), uwsgi_jvm_strlen2c(hkey)); - write(wsgi_req->poll.fd, ": ", 2); - write(wsgi_req->poll.fd, uwsgi_jvm_str2c(hval), uwsgi_jvm_strlen2c(hval)); - write(wsgi_req->poll.fd, "\r\n", 2); + wsgi_req->headers_size += write(wsgi_req->poll.fd, uwsgi_jvm_str2c(hkey), uwsgi_jvm_strlen2c(hkey)); + wsgi_req->headers_size += write(wsgi_req->poll.fd, ": ", 2); + wsgi_req->headers_size += write(wsgi_req->poll.fd, uwsgi_jvm_str2c(hval), uwsgi_jvm_strlen2c(hval)); + wsgi_req->headers_size += write(wsgi_req->poll.fd, "\r\n", 2); } - write(wsgi_req->poll.fd, "\r\n", 2); + wsgi_req->headers_size += write(wsgi_req->poll.fd, "\r\n", 2); body = uwsgi_jvm_array_get(response, 2); diff --git a/plugins/jwsgi/uwsgiplugin.py b/plugins/jwsgi/uwsgiplugin.py index 63848cb4..0ca9b080 100644 --- a/plugins/jwsgi/uwsgiplugin.py +++ b/plugins/jwsgi/uwsgiplugin.py @@ -2,8 +2,13 @@ import os,sys NAME='jwsgi' -JVM_INCPATH = "/Developer/SDKs/MacOSX10.6.sdk//System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Headers/" -JVM_LIBPATH = "/Developer/SDKs/MacOSX10.6.sdk//System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Libraries/ -framework JavaVM" +# Snow Leopard +#JVM_INCPATH = "/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Headers/" +#JVM_LIBPATH = "/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Libraries/ -framework JavaVM" + +# Ubuntu +JVM_INCPATH = "/usr/lib/jvm/java-6-sun-1.6.0.15/include/ -I/usr/lib/jvm/java-6-sun-1.6.0.15/include/linux" +JVM_LIBPATH = "/usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/i386/server/" CFLAGS = ['-I' + JVM_INCPATH] @@ -12,6 +17,6 @@ LIBS = ['-ljvm'] GCC_LIST = ['jwsgi_plugin'] if os.environ.has_key('LD_RUN_PATH'): - os.environ['LD_RUN_PATH'] += ':' + JVM_LIBPATH + os.environ['LD_RUN_PATH'] += ':' + JVM_LIBPATH else: - os.environ['LD_RUN_PATH'] = JVM_LIBPATH + os.environ['LD_RUN_PATH'] = JVM_LIBPATH diff --git a/utest.java b/utest.java index 93fa16a7..f3c63033 100644 --- a/utest.java +++ b/utest.java @@ -18,13 +18,16 @@ public class utest { public static Object[] jwsgi(Hashtable env) throws java.io.IOException { if (env.containsKey("CONTENT_LENGTH")) { - Integer cl = Integer.parseInt( (String) env.get("CONTENT_LENGTH") ); - FileInputStream f = new FileInputStream( (FileDescriptor) env.get("jwsgi.input") ); - byte[] b = new byte[cl]; + String s = (String) env.get("CONTENT_LENGTH"); + if (s.length() > 0) { + Integer cl = Integer.parseInt( s ); + FileInputStream f = new FileInputStream( (FileDescriptor) env.get("jwsgi.input") ); + byte[] b = new byte[cl]; - if (f.read(b) > 0) { - String postdata = new String(b); - System.out.println( postdata ); + if (f.read(b) > 0) { + String postdata = new String(b); + System.out.println( postdata ); + } } }