PHP-Java-Bridge使用筆記_php執行個體

來源:互聯網
上載者:User

/**============================================================

* @author  ken(695093513@qq.com)

* @date    2014-09-09

*
==============================================================**/

/**============================================================

* 版本與環境

*
==============================================================**/

版本:

1、PHP版本:最高為5.4,當前測試為5.4/5.3

2、JDK:官方最新版本,當前測試為1.8

3、php-java-bridge:官方最新版本,當前測試為6.2.1

4、作業系統:Windows7 32位/64位 | Linux(Centos6.5)

/**============================================================

* 安裝和使用

*
==============================================================**/

第一步:安裝

1、JDK的安裝:正常安裝即可,並配置好環境變數

2、PHP的安裝:正常安裝即可

3、php-java-bridge的安裝:

①先下載Java伺服器Tomcat正常安裝,安裝好後,開啟Tomcat伺服器

②將下載的php-java-bridge包放到webapps下面

③等待Tomcat執行解析,會在該目錄下面產生相同名字的檔案夾

④將該檔案夾拷貝到Apache伺服器下面使用

(註:網上的教程可以正常使用,調用java系統函數和簡單的jar包,但是對於複雜的jar包會遇到各種各樣的問題,所以建議使用這種方式)

第二步:使用

1、不需要開啟Tomcat(最好關閉掉),開啟apache伺服器,雙擊運行javabridge.jar,選擇8080連接埠(javabridge.jar也需要放到java虛擬機器下面,參見下面第二點規則)。

2、儘可能的將jar包放到java虛擬機器下面,即jre安裝下面(比如:C:\Program Files\Java\jre1.8.0_20\lib\ext)

3、在PHP檔案中不需要再引用jar包,因為放到虛擬機器下面去了,java會自動調用

(註:第1點中的javabridge.jar是在第一步:安裝中第3點中獲得的)

/**============================================================

* 其他使用方法和注意事項

*
==============================================================**/

關於PHP-Java-Bridge的各種函數使用:

1、高版本的java_require不再使用,也無法使用,由於放到java虛擬機器下面,則不需要再手動引入包檔案

2、java_value()用於擷取值,而且必須使用該函數擷取值

(特別注意:如果該值需要存入資料庫,那麼必須使用該java_value函數,不然會報錯,或者無法存入資料庫)

3、java_inspect()對執行個體化或者方法進行print_r類似的輸出

(註:請不要直接使用var_dump這樣的輸出方法輸出java的類、方法、變數,需要使用java_inspect或者java_value,例如:var_dump(java_inspect($abc)))

4、執行個體化使用 $test = new Java("Test")的方式,如果執行個體化的方法中存在參數,可以這樣new Java("Test","pram")

注意事項:

1、務必確保對java.inc的引用,確保引用正確

2、務必確保對jar包放在能引用的地方,比如java虛擬機器jre下面

3、在PHP中調用Java使用PHP的的寫法即可

/**============================================================

* 附錄1:各種報錯問題處理

* 附錄2:PHP執行個體代碼

* 附錄3:PHP-Java-bridge檔案包解壓後目錄圖

*

==============================================================**/

附錄1:各種報錯問題處理

1、參照上面的“其他使用方法和注意事項”,大多數問題都是路徑引用的問題,只要處理好了,正確獲得了,就不會出問題

附錄2:PHP執行個體代碼

require_once("/java/Java.inc");$util = new Java("com.sdb.payclient.core.PayclientInterfaceUtil");$input = new Java("com.ecc.emp.data.KeyedCollection");$signDataput = new Java("com.ecc.emp.data.KeyedCollection");$input->put("masterId","111111");$input->put("orderId","222222");$signDataput = $util->getSignData($input);$orig = java_values($signDataput->getDataValue("orig"));$sign = $signDataput->getDataValue("sign");echo java_values($sign);

附錄3:PHP-Java-bridge檔案包解壓後目錄圖

bridge --java java.inc JavaProxy.php --WEB-INF --cgi --... --lib php-script.jar php-servlet.jar --pear web.xml weblogic.xml

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.