標籤:PHP Java php-java-bridge
php-java-bridge是什嗎?
php調用java方法有rpc,也有php-java-bridge.
php裡調用java平台封裝好的jar包裡的class類和方法,一般飄易推薦的做法是採用php-java-bridge做橋接.
孰優孰略,做了比較以後咱們再議。
php-java-bridge實現原理。
先開啟java的一個監聽連接埠,php調用java的時候,將對應的方法調用轉寄到java的指定連接埠,由java執行後再將結果返回給php。
這種模式是一種比較典型的代理模式,php在這裡成為了一個代理轉寄站,把java的類調用轉寄給後端的java執行。
3.php-java-bridge如何使用?
a.下載
http://php-java-bridge.sourceforge.net/pjb/download.php
下載這倆個檔案
b.啟動
mv ~/Download/JavaBridge.jar ~/php-java/
java -jar JavaBridge.jar SERVLET_LOCAL:8081
會出現如下資訊:
4.使用php調通java的類
這時候使用到了Java.inc這個檔案。
mv ~/Download/Java.inc ~/phptest
vi testJavaBridge.php
<?phpdefine("JAVA_DEBUG", true); //調試設定define("JAVA_HOSTS", "127.0.0.1:8081");define("JAVA_LOG_LEVEL", 2);require_once "Java.inc";java_set_file_encoding("UTF-8");try { $props = java("java.lang.System")->getProperties(); $array = java_values($props); foreach($array as $k=>$v) { echo "$k=>$v"; echo "<br>\n"; } echo "<br>\n"; class MyClass { function toString() { return "hello PHP from Java!"; } } $javaObject = java_closure(new MyClass()); echo "PHP says that Java says: "; echo $javaObject; echo "<br>\n"; echo "<br>\n"; echo java("php.java.bridge.Util")->VERSION; echo "<br>\n";} catch (JavaException $ex) { echo "An exception occured: "; echo $ex; echo "<br>\n";}
php testJavaBridge.php
會輸出如下類似如下資訊:
這些資訊是Java的資訊
5.後續
後續的內容會單獨寫一篇文章說明進階使用。
php-java-bridge實踐