Zum Inhalt springen

Java-Php bridge funzt nicht..Tip?


moonsister

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 Wochen später...

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;

?>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...