moonsister Geschrieben 18. Juli 2006 Geschrieben 18. Juli 2006 Hi, gleich am Anfang ne Entschuldigung, wenns chaotisch wird...ich hab noch nie auch nur n Apache Server o.ä. aufgesetzt oder PHP installiert, ich bin da *etwas* planlos und alle KOnfigurationsskripte sagen mri gar nix....und Linuxspezi bin ich auch nicht grade...Danke für jede Hilfe! Wenn ich wo ungenau bin, und mir sagen könnt, welches die richtige Frage zu meinem Problem ist, komm ich evtl. auch schon weiter. Ich soll die eine Php-Java-Bridge http://php-java-bridge.sourceforge.net/ unter Debian zum laufen bringen. Plan ist, daß Java Objekte unter PHP ansprechbar sind. Auf dem System sind Apache und Php installiert. Ich hab die Bridge jetzt mit Hilfe des Perl Skripts installiert, Tomcat läuft auch. extension=java.so hab ich in der php.ini eingefügt (Irgendwo stand, mamn solle die Datei auch ins Verzeichnis extension_dir kopieren, aber ich finde weder eine Datei java.so, noch ein Verzeichnis extension_dir) .Html Seite mit Php wird auch geladen, aber sobald Javacode drin ist, krieg ich n Fehler, als wenn der Code falsch wär (z.B. unexpected { in line...). Da die Beispiele (z.B. array.php) von der Bridge mitgeliefert wurden, geh ich aber davon aus, daß die richtig sind. Hat jemand Erfahrung damit oder n Tip? Noch mal sorry, wenn die Fragen unklar gestellt sind. Thx, Mara Zitieren
perdian Geschrieben 18. Juli 2006 Geschrieben 18. Juli 2006 aber sobald Javacode drin ist, krieg ich n Fehler, als wenn der Code falsch wär (z.B. unexpected { in line...).Und wieso postest du dann nicht einfach mal den genauen Wortlaut der Fehlermeldung?! Noch mal sorry, wenn die Fragen unklar gestellt sind.Das wird dann dein Problem werden... Du willst schließlich Hilfe haben, und wenn die Informationen, die von dir kommen, nicht aussagekräftig sind wird uns das eher wenig ausmachen. Du aber verpasst dadurch vielleicht wertvolle Tipps und eventuell sogar die Lösung für dein Problem. Zitieren
etreu Geschrieben 18. Juli 2006 Geschrieben 18. Juli 2006 Wie hast du denn dein PHP installiert? Mittels Paketmanagement oder selber kompiliert? Normalerweise kannst du beim kompilieren respektive in der Konfiguration angeben, ob java benutzt werden soll, oder nicht. Ausserdem musst du auf dem Server JavaVM installiert haben und der Interpreter sollte auch im Pfad liegen, so dass PHP die VM auch findet. Zitieren
moonsister Geschrieben 10. August 2006 Autor Geschrieben 10. August 2006 Hi noch Mal, sorry fürs nicht wieder reinschauen. Ich habs letztlich geschafft (und das ganze auch noch mal auf nem andren Debian beim Kollegen so wie unten zum laufen bekommen. Falls es jemanden interessiert- hier ist meine Memo Ich hoffe, es hilft jemanden weiter. Ich hoffe das reinkopieren macht nicht zu viel Chaos aus dem Text.... Inzwischen hab ich andre Probleme mit dem Projekt, aber immerhin läuft die Bridge.. Zu den Beispielen sei gesagt, dass ich mir immer noch nciht ganz sicher bin, was man jetzt wann per "require" einfügen muß, ob "jar" oder php_Java.php oder oder...da frickel ich grade an nem komplexeren Beispiel. Lieber Gruß, Mara Wie installiere ich die Java-Php-Bridge? Links: about/installation: http://php-java-bridge.sourceforge.net/ download: http://sourceforge.net/project/showfiles.php?group_id=117793&package_id=128273&release_id=432473 Einige Konfigurationsbeispiele der php.ini: http://de.php.net/java Vorraussetzungen (für diese Anleitung): Apache, Php 4.3, Source der Bridge Make sure you have java version 1.4.2 or higher, gcc 3.2 or higher, apache 1.3 or higher, GNU autoconf 2.57 or higher, GNU libtool 1.4.3 or higher, GNU automake 1.6.3 or higher, GNU make and php 4.3.4 or higher installed. You can check the version numbers with the commands java -version, gcc --version, apachectl -version, libtool --version, automake --version, make null --version, autoconf --version and php-config. -------------------------------------------------------------------------------------------------------------------------- 1. Installation -------------------------------------------------------------------------------------------------------------------------- Download file entpacken. In das entpackte Verzeichnis gehen und kompilieren/installieren mit Befehl [Pfad]phpize && ./configure --with-java=[JAVA_HOME] && make z.B. phpize &&./configure --with-java=/opt/jdk1.5 && make && sh install.sh (Pfadangaben korrigieren/hinzufügen) 1a. Fehler, u.a. mit Bezug auf neuere Versionen von automake, libtool, autoconf, obwohl die empfohlenen Versionen ok sind? -php4-dev herunterladen und installieren: apt-get install php4-dev -Bei automake gibt es auch trotz Version 1.9 Probleme, hier muß die instabile Version runtergeladen werden: /etc/apt -> sources.list dort einfügen: deb http://ftp.de.debian.org/debian/ testing main deb-src http://ftp.de.debian.org/debian/ testing main ..und automake neu installieren. ------------------------------------------------------------------------------------------------------------------------ 2. Modul aktivieren ------------------------------------------------------------------------------------------------------------------------ phpinfo(); über eine php Seite aufrufen und die Pfade von php.ini und extension_dir herausfinden. java.so und JavaBridge.jar aus dem javabridge Ordner in das extension_dir kopieren. In php.ini mit richtigen Pfaden für java und java_home einfügen: extension = java.so [java] java.java_home = /opt/jdk1.5 java.java = /opt/jdk1.5/bin/java java.log_file = /var/log/php-java-bridge.log java.log_level = 2 Apache neu starten mit apachectl restart . Soll die Bridge nicht im Standalone Modus betrieben werden, so finden sich weitere KOnfiurationshinweise unter link 1 und in "Readme" und "Install". ------------------------------------------------------------------------------------------------------------------------ 3. Test ------------------------------------------------------------------------------------------------------------------------ test.php aus documentation Ordner (/usr/share/doc/php-java-bridge-[version]) kopieren in /var/www und testen: http://yourHost/test.php Mit <?php phpinfo();?> ist unter "Java" ersichtlich, ob Java und die bridge laufen. Ein einfaches Beispiel: //Dateiname: Vectortest.zugegeben, macht nicht viel, aber wenn kein Fehler beim Aufruf kommt, klappt der Zuriff auf die Klasse Vector <?php require_once('php_Java.php'); $v = new Java("java.util.Vector"); $v->add($buf=new Java("java.lang.StringBuffer")); $buf->append("100"); $temp = $v->elementAt(0); $string = $temp->toString(); echo $string; ?> oder noch kürzer: //Dateiname: datum.php <?php require_once('php_Java.php'); $n = new javaclass("java.util.Date"); echo $n->toString(); ?> Weitere Beispiele und Hinweise zur Syntax stehen unter link 1 oben. 3.a Eigene Klassen Um eigene Javaklassen einbinden zu können gibt es den Befehl java -jar JavaBridge.jar --convert /usr/share/pear klassenname.jar , der die angegebene Klasse in eine php-KLasse konvertiert und sie in /usr/share/pear/ schreibt. Dort findet man dann eine php_Java.php, die man in Skripte über require_once("klassenname") einbinden kann. Beispiel: Javaklasse FileOutput legt eine leere Datei an einem bestimmten Pfad an und gibt einen String zurück mit "Datei angelegt unter ...". //Dateiname: file.php <?php require_once('php_Java.php'); java_require_once('/usr/share/pear/fileoutput/fileoutput.jar'); $fo = new Java("de.tng.JSRTest.FileOutput"); //neues Objekt der Klasse FileOutput $msg = $fo->touchFile(); //Methode touchFile, die eine leere Datei enlegt und einen String zurück gibt echo $msg; ?> Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.