ホームページ >バックエンド開発 >PHPチュートリアル >PHP と Java_PHP 間の通信を実装する方法 チュートリアル
出身地:
私は最近、電子商取引プラットフォームとオンライン バンキングを統合する小さなものを作成しました。このプログラムはオープンソースの Ecmall であり、提供されるドキュメントは非常に完全です。オンライン バンキングで使用される検証。このライブラリには Java と C のみが含まれています。私はまだ Java に精通しているため、署名と検証のインターフェイスとして Java を使用することにしました。
方法:
実際、インターネット上には php と java の間の相互作用に関する情報がかなりたくさんあります。一般的に言えば、実際にはいくつかの方法があります:
•PHP は、exec や system などのコマンドを通じてコマンドラインを直接呼び出し、Java Hello タイプで Java プログラムを実行します。ただし、欠点は明らかであり、Java クラスのさまざまなメソッドとうまく統合できません。この方法で得られた最終的な実行結果も行数が制限されているため、破棄されます。
•PHP と Java は WebService を介して通信します。Java 側で関連する WebService を開き、PHP が XML または JSON を介して Java の WebService を呼び出すようにします。ただし、この方法はより一般的であり、実装できる機能も高度にカスタマイズ可能です。欠点は非常に明白です
• Java 側で関連するメッセージを公開するには TomCat サーバーをインストールする必要があります
• WebService は証明書を作成し、署名と署名検証プロセスに関連するセキュリティ証明書を作成する必要があります
• PHP は PHP-JAVA-BRIDGE モジュールをPHPとJava間の通信を実現するこのモジュールの設定とインストールは比較的簡単なので、PHPとJava間の通信にはこのモジュールを使用することにしました
第一歩
Java環境とPHP環境のインストール PHP環境はCentOS上にYUMを使用してインストールします
。yum インストール java
yum インストール yum インストール java*jdk*devel*
java-version をテストします。次の出力のような結果があれば、Java 環境は正常にインストールされています。
ステップ 2
php-java-bridgeモジュールをコンパイルしてインストールしますパッケージをダウンロード:
PHP-JAVA-BRIDGE4.0 このバージョンは4.0です。最新バージョンは6です。sourceforgからダウンロードできますが、6の使い方は4の使い方とは少し異なるようです
コンパイルしてインストールします:
php-java-bridgeを解凍し、php-java-bridgeのディレクトリに入り、php-java-bridgeをphp拡張機能にコンパイルします
•configureでは、javaパラメータは、phpでは、php-configの特定のディレクトリであるjdkとjreのパスに入力されます。
•コンパイルが完了すると、java.soファイルとJavaBridge.jarがphpのlib/php/extensions/no-debug-non-zts-20060613に追加されます
関連するパラメータを設定します
php.ini ファイルを開き、最後に次のパラメータを追加します:
java.java="/usr/lib/jvm/java-1.7.0-openjdk.x86_64/jre/bin/ java"
java.log_file="/var/log/php-java-bridge.log"
java.classpath="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ JavaBridge.jar"
java.libpath="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613"
java.log_level="2"
fast_cgi モードで実行されている php の場合は、php-fpm と nginx または Apache サーバーを再起動します
ステップ 4
テスト
demo1 (Java標準クラスの呼び出し)
/data ディレクトリに新しいテスト ディレクトリを作成し、テストとして Hello.java ファイルを作成します
}
}
1. Java の public String getHi() では public を省略することはできません。省略しないと、デフォルトの getHi() メソッドが private になり、PHP で呼び出すことができません。
2. PHP で Java クラスを呼び出した後、返される結果は Java の o(変数) であるため、強制型変換を行って PHP 変数の型に変換して使用するのが最善です。
3. java_require() を使用するときは、php.ini で設定した libpath に呼び出す jar パッケージを置く必要がないように、絶対パスを使用するのが最善です。
4. new Java() を使用する場合、クラス名の最初の文字を大きくする必要があります。そうしないと、エラーが報告され、Java はクラスを見つけることができません。
http://www.bkjia.com/PHPjc/824892.html