mirror of
https://github.com/clearlinux/uwsgi.git
synced 2026-09-05 13:11:33 +00:00
fixed jvm/jwsgi compilation on Linux
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
#include "../../uwsgi.h";
|
||||
#include "../../uwsgi.h"
|
||||
#include <jni.h>
|
||||
|
||||
#define MAX_CLASSPATH 64
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "jvm.h";
|
||||
#include "jvm.h"
|
||||
|
||||
/*
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
@@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user