php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-03-2007, 11:53
anms
 Newbie
Links : Onlinestatus : anms ist offline
Registriert seit: Mar 2007
Beiträge: 8
anms ist zur Zeit noch ein unbeschriebenes Blatt
Standard [PHP5] PHP-Java-Bridge

Hallo,

hat jemand schon mal mit PHP-Java-Bridge gearbeitet, vor allem mit der Version 4.0.1. Es gibt im Netz so viel Hilfe zur Installation und Test aber bei mir funktioniert nichts.

Meine erste Frage wäre:
Mit welchen Versionen von Apache und PHP ist Bridge kompatibel?

Braucht man kein PHP_Java.dll mehr, weil es im Paket nicht mehr dabei ist.

Wenn ich die Einstellungen in php.ini gemacht habe, muss ich noch was tun, bevor ich ein Test ausführen kann?

Ich hoffe, dass es zu beantwortende Fragen sind. Wäre sehr dankbar für Hilfe.

Gruß
anms
Mit Zitat antworten
  #2 (permalink)  
Alt 17-03-2007, 15:04
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

zu den versionen steht hier einiges: http://de3.php.net/manual/en/ref.java.php

nach dem editieren von php.ini muss man den webserver neustarten.
Mit Zitat antworten
  #3 (permalink)  
Alt 17-03-2007, 17:48
Hopka
 PHP Expert
Links : Onlinestatus : Hopka ist offline
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
Hopka ist zur Zeit noch ein unbeschriebenes Blatt
Hopka eine Nachricht über ICQ schicken
Standard

Also erstmal stellt sich die Frage, welche PHP-Java-Bridge du überhaupt verwenden möchtest. Es gibt ja einmal die "offizielle", die im PHP-Handbuch beschrieben wird, aber die ist derartig schlecht dokumentiert und funktions-unfähig, dass man sie getrost als nicht existierend betrachten kann.
Da du Version 4.0.1 erwähnt hast, gehe ich mal davon aus, dass du die PHP/Java Bridge aus dem Projekt bei Sourceforge meinst. Das ist allerdings soweit ich weiß etwas anderes als die im Handbuch beschriebene Bridge - und von daher solltest du das, was im Handbuch steht, ignorieren.
Bei dem Download (Binary von dem SF.net Projekt) ist eine recht ausführliche README-Datei bei, und die hat mir soweit geholfen, das es lief. Man muss dafür auch weder eine PHP-Extension installieren, noch irgendwelche Änderungen an der php.ini vornehmen.
Ich hab das allerdings nur für einen sehr kleinen Test verwendet und keine ernsthafte Installation durchgeführt.
__________________
hopka.net!
Mit Zitat antworten
  #4 (permalink)  
Alt 17-03-2007, 18:53
anms
 Newbie
Links : Onlinestatus : anms ist offline
Registriert seit: Mar 2007
Beiträge: 8
anms ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Hopka,

schön dank für die Antwort. Ja ich verwende (zumindest versuche ich es) die PHP/Java Bridge aus dem Projekt bei Sourceforge. Die Anleitung hilft mir leider nicht weiter, zumindest funktioniert es bei mir nicht.

Nochmal eine kurze Beschreibung, was ich gemacht habe.

Ich verwende

OS: XP
Apache: 2.2.4
PHP: 5.2.1
JDK: 1.5.0.10
PHP-Java-Bridge: 4.0.1

1. Habe als erstes aus pecl die php_java.dll in PHP\ext kopiert.
2. php.ini wie folgt angepasst:

extension=php_java.dll

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

[java]
java.home="C:\Programme\Java\jdk1.5.0_10"
java="C:\Programme\Java\jdk1.5.0_10\bin\javaw.exe"
java.class.path="C:\Programme\PHP\ext\JavaBridge.jar"
java.library="C:\Programme\Java\jdk1.5.0_10\jre\bin\client\jvm.dll"
java.library.path="C:\Programme\PHP\ext\"
java.log_level=3

3. JavaBridge.jar in PHP\ext kopiert
4. ein phpinfo() zeigt auch alles korrekt an, außer Java Support enabled. Habe aber erfahren, dass php5 den support eingestellt hat.

Wenn ich die Beispiele ausfuhren möchte, z.B.

<?php

// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br/>';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br/>';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
$system->getProperty('os.version') . ' on ' .
$system->getProperty('os.arch') . ' <br/>';

// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter->format(new Java('java.util.Date'));

?>

bricht mein Apache mit der Meldung "Apache HTTP Server hat ein Problem festgestellt und muss beendet werden" und dann "Fehler: Netzwerk-Zeitüberschreitung".

Was mache ich falsch? Was passt da nicht? Wäre für jede Hilfe dankbar!

Gruß
Anna
Mit Zitat antworten
  #5 (permalink)  
Alt 17-03-2007, 19:55
Hopka
 PHP Expert
Links : Onlinestatus : Hopka ist offline
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
Hopka ist zur Zeit noch ein unbeschriebenes Blatt
Hopka eine Nachricht über ICQ schicken
Standard

Was du falsch machst: du verwendest php_java.dll
Also lösche die Datei wieder und mache die Änderungen an deiner php.ini rückgängig.

Wie ich es gemacht habe:

Windows XP, Apache 2.0.58, PHP 5.2.0, JDK 1.5.0.07, PHP-Java-Bridge 4.0.2

Hab mir die 4.0.2 Binary der PHP-Java-Bridge runtergeladen und entpackt. Dann mit einer Shell (cmd.exe) in den Ordner gewechselt und java -jar JavaBridge.war eingegeben. Dadurch entsteht eine Datei RESULT.html, wo die Ausgabe von phpinfo gefolgt von einigen Java-Infos steht. Dann habe ich im Unterordner ext die Datei JavaBridge.jar durch Doppelklick gestartet, SERVLET_LOCAL:8080 ausgewählt (war schon automatisch ausgewählt) und OK geklickt.
Als nächstes habe ich folgendes PHP-Script im Browser aufgerufen:
PHP-Code:
<?php
    
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
    
$s = new Java("java.lang.System");
    
var_dump($s->nanoTime());
?>
Das, was er da per require_once lädt, wird durch die JavaBridge.jar bereitgestellt. Vermutlich musst du vorher in der php.ini noch allow_url_include ON setzen, weil sonst das require_once nicht erlaubt ist.

Die php_java.dll aus PECL ist (vermutlich - Dokumentation ist hier leider Mangelware) teil einer völlig anderen PHP-Java Bridge und sollte daher nicht verwendet werden. Die PHP-Java Bridge von Sourceforge gibt es zwar auch als PHP-Extension, aber soweit ich weiß nicht vorkompiliert für Windows.
__________________
hopka.net!
Mit Zitat antworten
  #6 (permalink)  
Alt 17-03-2007, 19:56
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

1)java Bridge kannst du nicht bei jedem Anbieter installieren, und auch dann wird es langsam laufen.
2)wenn du ein root server hast, dann kannst du auch JBoss oder Jakarta installieren.
und wenn du das kannst, dann gibt es überhaupt kein Grund aus PHP auf Java zuzugreifen, sondern man schreibt ein servlet
oder integriert PHP in JSP(was auch nicht besonder nötig ist, da Java auch ziemlich viel bietet).
__________________
Slava
bituniverse.com

Geändert von Slava (17-03-2007 um 19:58 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 17-03-2007, 21:33
anms
 Newbie
Links : Onlinestatus : anms ist offline
Registriert seit: Mar 2007
Beiträge: 8
anms ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich danke Euch alle für die schnelle Antworten. Die helfen mir sehr.

Ich bin gezwungen von PHP aus Java anzusprechen (Uni-Vorgaben).

Die Bridge scheint zu funktionieren, ein ganz großes DANKESCHÖN!!!

Hoffe, dass das meine letzte Frage ist. Wieso funktioniert dann java_require nicht? Damit möchte ich jar-Files ansprechen. Ich bekomme die Fehlermeldung:
Fatal error: Call to undefined function java_require() in C:\Programme\Apache Software Foundation\Apache2.2\htdocs\java2.php on line 5

die PHP-Datei dazu:

<?php

//Einbinden der JAVA-Bibliothek
java_require("HelloWorld.jar");

// Instantiieren der JAVA-Klasse
$myObj = new Java('HelloWorld');

// Anzeige des übergebenen Strings
echo (String) $myObj->getHelloWorld();

?>

HelloWorld.jar befindet sich natürlich in C:\Programme\Apache Software Foundation\Apache2.2\htdocs

Muss ich wieder irgendwas in php.ini aktivieren?

Für eine Antwort wäre ich sehr dankbar!

Gruß
Anna
Mit Zitat antworten
  #8 (permalink)  
Alt 18-03-2007, 01:06
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

kann es sein das die bridge nicht richtig in php geladen wird (als extension?) die funktion scheint ja nicht zu existieren - probiers evtl mal mit require (http://php-java-bridge.sourceforge.n...i/java_8c.html)
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #9 (permalink)  
Alt 18-03-2007, 15:11
anms
 Newbie
Links : Onlinestatus : anms ist offline
Registriert seit: Mar 2007
Beiträge: 8
anms ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

ich glaube, dass die Bridge nicht funktioniert. Habe gerade ein Beispiel versucht und habe folgende Fehlermeldung bekommen:

Fatal error: Class 'Java' not found in C:\Programme\Apache Software Foundation\Apache2.2\htdocs\java1.php on line 4

Die datei dazu ist wie folgt:

<?php

// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br/>';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br/>';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
$system->getProperty('os.version') . ' on ' .
$system->getProperty('os.arch') . ' <br/>';

// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter->format(new Java('java.util.Date'));

?>

Noch was. Die von der JavaBridge.war erzeugte RESULT.html enthält überhaup keine Information über Java. Ist das so korrekt?

Weiß jemand mir zu helfen? Bitte, bitte

Gruß
Anna
Mit Zitat antworten
  #10 (permalink)  
Alt 19-03-2007, 12:32
anms
 Newbie
Links : Onlinestatus : anms ist offline
Registriert seit: Mar 2007
Beiträge: 8
anms ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo liebe Leute,

das Problem scheint gelöst zu sein.

Das ganze Geheimnis war, dass ich bei jeder php-Datei
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
einfügen musste.

Jetzt habe ich drei neue, hoffentlich aber kleine Fragen.

1. Was hat diese Java.inc in sich und warum muss es jedes mal eingefügt werden?

2. Warum erschint meine Ausgabe immer in [] mit o(String):, wie z.B.
Java version=[o(String):"1.6.0"]

3. Warum muss ich jedes mal vor dem Ausführen JavaBridge.jar neu starten. Wie kann ich diesen Vorgang automatisieren?

Ach ja, noch ein kleines Problem.

Bei mir ist der Port 8080 schon mir Oracle besetzt. Wie kann ich das ändern (ist egal, ob bei Oracle oder bei JavaBridge).

Für Antworten bedanke ich mich im Voraus.

Liebe Grüße
Anna
Mit Zitat antworten
  #11 (permalink)  
Alt 19-03-2007, 14:53
zerni
 Member
Links : Onlinestatus : zerni ist offline
Registriert seit: Oct 2006
Beiträge: 268
zerni ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Jetzt mal so als Frage, weil ich ein Unwissender bin:

ist es dann theoretisch möglich alles über PHP auszugeben und die Verbindung mit der DB herrzustellen und mit Java dann komplexe Berechnungen anzustellen??
oder ist das nur mit PHP & SQL performanter?

Im klartext:

Ich müsste in php endlos viele Schleifen aufrufen, aber das will ich nicht deshalb gebe ich den array oder was auch immer an Java weiter, welches das dann für mich berechnet?
Mit Zitat antworten
  #12 (permalink)  
Alt 19-03-2007, 15:22
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von zerni
Jetzt mal so als Frage, weil ich ein Unwissender bin:
Ich müsste in php endlos viele Schleifen aufrufen, aber das will ich nicht deshalb gebe ich den array oder was auch immer an Java weiter, welches das dann für mich berechnet?
und in Java muss du keine schleifen programmieren?
ist aber egal,
du kannst JavaBridge benutzen, oder deine Java-anwendung über exec laufen lassen, oder auch die PHP finktionen für Java zugriffe benutzen .
Perfomance massig, ist aber keine von diesen Lösungen richtig gut.

wenn Java, dann richtg! Also servlet, bzw JSP schreiben.
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #13 (permalink)  
Alt 19-03-2007, 15:45
zerni
 Member
Links : Onlinestatus : zerni ist offline
Registriert seit: Oct 2006
Beiträge: 268
zerni ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmm ja nur haben wenig Anbieter nen Tomcat server laufen

außerdem ist eine kompilierte Javadatei doch wohl schneller im Schleifen abarbeiten als php oder?
Mit Zitat antworten
  #14 (permalink)  
Alt 19-03-2007, 16:04
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

uuh, jetzt wird's pauschal..
Mit Zitat antworten
  #15 (permalink)  
Alt 19-03-2007, 16:34
zerni
 Member
Links : Onlinestatus : zerni ist offline
Registriert seit: Oct 2006
Beiträge: 268
zerni ist zur Zeit noch ein unbeschriebenes Blatt
Standard

naja, dass son Java-PHP nix halbes und nix ganzes ist, war mir schon klar!

Aber warum mach ich dann sowas?! ich verstehe den Nutzen nicht, wenn nicht die Performance?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Formmailer v1.6.1 Bootstrap 4

Formmailer v1.6.1 Bootstrap wurde extra für Bootstrap entwickelt. Mit Bootstrap kann man schnell und einfach kleine oder große Projekte entwickeln, die auf Geräten in allen erdenklichen Formen funktionieren.

18.12.2018 arne-home | Kategorie: PHP/ Formular
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:58 Uhr.