fixed jvm/jwsgi compilation on Linux

This commit is contained in:
roberto@fiorenzo
2010-11-08 16:38:44 +01:00
parent 444e8d2637
commit 4a4455cd16
6 changed files with 41 additions and 23 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
#include "../../uwsgi.h";
#include "../../uwsgi.h"
#include <jni.h>
#define MAX_CLASSPATH 64
+1 -1
View File
@@ -1,4 +1,4 @@
#include "jvm.h";
#include "jvm.h"
/*
+7 -2
View File
@@ -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]
+14 -9
View File
@@ -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;i<wsgi_req->var_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);
+9 -4
View File
@@ -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
+9 -6
View File
@@ -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 );
}
}
}