hi,
tryng to use the php servlet sapi with Tomcat 4.1,
I found this problems:
-- configure generates a makefile without JAVA_INCLUDES
-- make fails on servlet.c (php_module_startup call)
-- make do not build phpsrvlt.jar
-- got it working, every page start with "HTTP/1.0 200 X"

this patch fixes all this problems,
tested on :
php4-stable / php4-head
RedHat Linux 7.x and 8.0
Sun J2SDK 1.4.1_01
Tomcat 4.1.18

Servlet extension still need the LD_LIBRARY_PATH settings,
still crash sometime, but at least it compile and run.

Who is the maintainer of this sapi module ?

thanks in advance,
Giuseppe


--
-------------------------------------------------------
Giuseppe Tanzilli [EMAIL PROTECTED]
CSF Sistemi srl phone ++39 0775 7771
Via del Ciavattino Anagni FR
Italy

diff -u -r php-4.3.0_org/ext/java/config.m4 php-4.3.0_test/ext/java/config.m4
--- php-4.3.0_org/ext/java/config.m4    Fri Nov 29 14:32:49 2002
+++ php-4.3.0_test/ext/java/config.m4   Fri Jan 10 12:15:28 2003
@@ -97,7 +97,7 @@
    dnl We have to find everything
    dnl
    for i in `find $PHP_JAVA/include -type d`; do
-     test -f $i/jni.h      && JAVA_INCLUDE=-I$i
+     test -f $i/jni.h      && JAVA_INCLUDE="$JAVA_INCLUDE -I$i"
      test -f $i/jni_md.h   && JAVA_INCLUDE="$JAVA_INCLUDE -I$i"
    done
 
@@ -178,6 +178,8 @@
   fi
 
   PHP_SUBST(JAVA_CLASSPATH)
+  PHP_SUBST(JAVA_INCLUDE)
+  PHP_SUBST(JAVA_CFLAGS)
 
   PHP_ADD_MAKEFILE_FRAGMENT
 fi
diff -u -r php-4.3.0_org/sapi/servlet/Makefile.frag 
php-4.3.0_test/sapi/servlet/Makefile.frag
--- php-4.3.0_org/sapi/servlet/Makefile.frag    Thu Mar  7 15:19:58 2002
+++ php-4.3.0_test/sapi/servlet/Makefile.frag   Fri Jan 10 12:15:28 2003
@@ -1,19 +1,19 @@
 
-$(builddir)/java.c : $(srcdir)/../../ext/java/java.c
-       @cp $(srcdir)/../../ext/java/java.c $(builddir)
+sapi/servlet/java.c : sapi/servlet/../../ext/java/java.c sapi/servlet/phpsrvlt.jar
+       @cp sapi/servlet/../../ext/java/java.c sapi/servlet
 
-$(builddir)/phpsrvlt.jar : $(srcdir)/servlet.java 
$(srcdir)/../../ext/java/reflect.java
-       $(mkinstalldirs) $(builddir)/net/php
-       @echo library=php4 > $(builddir)/net/php/reflect.properties
-       @echo library=php4 > $(builddir)/net/php/servlet.properties
-       @cp $(builddir)/formatter.java $(builddir)/net/php
-       @cp $(builddir)/servlet.java $(builddir)/net/php
-       @cp $(srcdir)/../../ext/java/reflect.java $(builddir)/net/php
-       cd $(builddir) && javac net/php/reflect.java
-       @test ! -f $(builddir)/reflect.class || mv $(builddir)/reflect.class 
$(builddir)/net/php # bug in KJC javac
-       javac -classpath .:$(SERVLET_CLASSPATH):$(CLASSPATH) 
$(builddir)/net/php/servlet.java
-       @test ! -f $(builddir)/servlet.class || mv $(builddir)/servlet.class 
$(builddir)/net/php # bug in KJC javac
-       javac -classpath .:$(SERVLET_CLASSPATH):$(CLASSPATH) 
$(builddir)/net/php/formatter.java
-       @test ! -f $(builddir)/formatter.class || mv $(builddir)/formatter.class 
$(builddir)/net/php # bug in KJC javac
-       cd $(builddir)/ && $(JAVA_JAR) phpsrvlt.jar net/php/*.class 
net/php/*.properties
-       @rm -rf $(builddir)/net
+sapi/servlet/phpsrvlt.jar : sapi/servlet/servlet.java 
+sapi/servlet/../../ext/java/reflect.java
+       $(mkinstalldirs) sapi/servlet/net/php
+       @echo library=php4 > sapi/servlet/net/php/reflect.properties
+       @echo library=php4 > sapi/servlet/net/php/servlet.properties
+       @cp sapi/servlet/formatter.java sapi/servlet/net/php
+       @cp sapi/servlet/servlet.java sapi/servlet/net/php
+       @cp sapi/servlet/../../ext/java/reflect.java sapi/servlet/net/php
+       cd sapi/servlet && javac net/php/reflect.java
+       @test ! -f sapi/servlet/reflect.class || mv sapi/servlet/reflect.class 
+sapi/servlet/net/php # bug in KJC javac
+       cd sapi/servlet && javac -classpath .:$(SERVLET_CLASSPATH):$(CLASSPATH):. 
+net/php/servlet.java
+       @test ! -f sapi/servlet/servlet.class || mv sapi/servlet/servlet.class 
+sapi/servlet/net/php # bug in KJC javac
+       cd sapi/servlet && javac -classpath .:$(SERVLET_CLASSPATH):$(CLASSPATH):. 
+net/php/formatter.java
+       @test ! -f sapi/servlet/formatter.class || mv sapi/servlet/formatter.class 
+sapi/servlet/net/php # bug in KJC javac
+       cd sapi/servlet/ && $(JAVA_JAR) phpsrvlt.jar net/php/*.class 
+net/php/*.properties
+       @rm -rf sapi/servlet/net
diff -u -r php-4.3.0_org/sapi/servlet/config.m4 php-4.3.0_test/sapi/servlet/config.m4
--- php-4.3.0_org/sapi/servlet/config.m4        Thu Mar  7 15:20:00 2002
+++ php-4.3.0_test/sapi/servlet/config.m4       Fri Jan 10 12:36:13 2003
@@ -34,13 +34,15 @@
     AC_DEFINE(SAPI_SERVLET, 1, [Whether you use Servlet])
 
     INSTALL_IT="\$(mkinstalldirs) \$(libdir)"
-    INSTALL_IT="$INSTALL_IT; \$(INSTALL) -m 0755 \$(srcdir)/sapi/servlet/phpsrvlt.jar 
\$(libdir)"
+    INSTALL_IT="$INSTALL_IT; \$(INSTALL) -m 0755 
+\$(top_srcdir)/sapi/servlet/phpsrvlt.jar \$(libdir)"
     INSTALL_IT="$INSTALL_IT; \$(INSTALL) -m 0755 $SAPI_SHARED \$(libdir)"
     PHP_SAPI=servlet
     PHP_BUILD_THREAD_SAFE
+    EXTRA_INCLUDES="$EXTRA_INCLUDES \$(JAVA_INCLUDE)"
     PHP_SELECT_SAPI(servlet, shared, servlet.c)
-    PHP_ADD_SOURCES(/sapi/servlet, java.c,,sapi)
+    PHP_ADD_SOURCES(/sapi/servlet, java.c,, sapi)
     PHP_ADD_MAKEFILE_FRAGMENT(sapi/servlet/Makefile.frag)
+
     AC_MSG_RESULT(yes)
   else
     AC_MSG_RESULT(no)
Only in php-4.3.0_test/sapi/servlet: java.c
Only in php-4.3.0_test/sapi/servlet: phpsrvlt.jar
diff -u -r php-4.3.0_org/sapi/servlet/servlet.c php-4.3.0_test/sapi/servlet/servlet.c
--- php-4.3.0_org/sapi/servlet/servlet.c        Thu Oct 24 15:14:49 2002
+++ php-4.3.0_test/sapi/servlet/servlet.c       Fri Jan 10 12:15:28 2003
@@ -71,11 +71,6 @@
 
 extern zend_module_entry java_module_entry;
 
-static zend_module_entry *additional_php_extensions[] = {
-  &java_module_entry
-};
-
-#define EXTCOUNT (sizeof(additional_php_extensions)/sizeof(zend_module_entry *))
 
 /***************************************************************************/
 
@@ -261,7 +256,7 @@
 
        sapi_startup(&servlet_sapi_module);
 
-       if (php_module_startup(&servlet_sapi_module, additional_php_extensions, 
EXTCOUNT)==FAILURE) {
+       if (php_module_startup(&servlet_sapi_module, &java_module_entry, 1)==FAILURE) {
                ThrowServletException(jenv,"module startup failure");
                return;
        }
diff -u -r php-4.3.0_org/sapi/servlet/servlet.java 
php-4.3.0_test/sapi/servlet/servlet.java
--- php-4.3.0_org/sapi/servlet/servlet.java     Wed Feb 27 08:29:18 2002
+++ php-4.3.0_test/sapi/servlet/servlet.java    Fri Jan 10 12:15:28 2003
@@ -107,6 +107,8 @@
 
       else if (data.startsWith("Location: ")) {
         response.sendRedirect(data.substring(data.indexOf(" ") + 1));
+      } else if (data.startsWith("HTTP/1")) {
+       return; // this one is added from servlet container (Tomcat 4.1), we have to 
+check for others
       }
 
       else {

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to