PHP/JavaBridge est une interface permettant de faire communiquer PHP avec une machine virtuelle Java.
Pré-requis
PHP5 et une version récente de Java :
- ashorlivs:webapps ashorlivs$ java -version
- java version "1.6.0_29"
- Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-10M3527)
- Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)
Installation de Tomcat 7
La procédure pour OS X est décrite par Wolf Paulus sur son blog. Le but étant de pouvoir accéder au manager de Tomcat :

Enregistrement du brige
Il suffit de placer JavaBridge.war dans la liste des webapps du manager. On peut ensuite y accéder par http://localhost:8080/JavaBridge/

Incorporation de l’API PSNext
PSNext est un logiciel de gestion de projet dont l’éditeur Sciforma a eu la bonne idée de proposer une API.
Cette manipulation est sensée fonctionner quelle que soit votre appli, temps que vous possédez un .jar
La solution que j’ai trouvée consiste à reconstruire le .war et à l’utiliser comme application.
Se rendre dans le dossier des webapps de Tomcat. Dans notre install il s’agit de /usr/local/apache-tomcat-7.0.16/webapps
L’appli JavaBridge est visible sous forme de .war (celui que l’on a uploadé tout à l’heure dans le manager) mais pendant son exécution le dossier est également décompressé cd JavaBridge/
On place les librairies de l’API PSNext dans le sous-dossier WEB-INF/lib
- PSClient.jar
- PSClient_en.jar
- utilities.jar
Et on recréer le .war (avec un autre nom pour ne pas confondre) :
- ashorlivs:JavaBridgeTemplate621 ashorlivs$ sudo jar -cvf PSNext.war *
- Password:
- manifest ajout?
- ajout : WEB-INF/ (entr?e = 0) (sortie = 0) (0% stock?)
- ajout : WEB-INF/cgi/ (entr?e = 0) (sortie = 0) (0% stock?)
- ajout : WEB-INF/cgi/x86_64-mac/ (entr?e = 0) (sortie = 0) (0% stock?)
- ajout : WEB-INF/cgi/x86_64-mac/conf.d/ (entr?e = 0) (sortie = 0) (0% stock?)
- ajout : WEB-INF/cgi/x86_64-mac/ext/ (entr?e = 0) (sortie = 0) (0% stock?)
- ajout : WEB-INF/cgi/x86_64-mac/launcher.sh (entr?e = 109) (sortie = 94) (13% compress?s)
- ajout : WEB-INF/cgi/x86_64-mac/php-cgi.MISSING.README.txt (entr?e = 76) (sortie = 69) (9% compress?s)
- ajout : WEB-INF/lib/ (entr?e = 0) (sortie = 0) (0% stock?)
- ajout : WEB-INF/lib/JavaBridge.jar (entr?e = 436954) (sortie = 414520) (5% compress?s)
- ajout : WEB-INF/lib/php-script.jar (entr?e = 58673) (sortie = 52504) (10% compress?s)
- ajout : WEB-INF/lib/php-servlet.jar (entr?e = 58252) (sortie = 54164) (7% compress?s)
- ajout : WEB-INF/lib/PSClient.jar (entr?e = 16954308) (sortie = 14660791) (13% compress?s)
- ajout : WEB-INF/lib/PSClient_en.jar (entr?e = 943325) (sortie = 789581) (16% compress?s)
- ajout : WEB-INF/lib/utilities.jar (entr?e = 3157382) (sortie = 2824147) (10% compress?s)
- ajout : WEB-INF/pear/ (entr?e = 0) (sortie = 0) (0% stock?)
- ajout : WEB-INF/web.xml (entr?e = 1779) (sortie = 623) (64% compress?s)
- ajout : WEB-INF/weblogic.xml (entr?e = 239) (sortie = 150) (37% compress?s)
- ajout : index.php (entr?e = 3871) (sortie = 1450) (62% compress?s)
- ajout : java/ (entr?e = 0) (sortie = 0) (0% stock?)
- ajout : java/Java.inc (entr?e = 62439) (sortie = 13636) (78% compress?s)
- ajout : java/JavaProxy.php (entr?e = 613) (sortie = 354) (42% compress?s)
- ajout : test.php (entr?e = 19) (sortie = 19) (0% compress?s)
- ashorlivs:JavaBridgeTemplate621 ashorlivs$ ls
- ashorlivs:JavaBridgeTemplate621 ashorlivs$ cd ../
- ashorlivs:webapps ashorlivs$ ls
- PSNext PSNext.war ROOT docs examples host-manager manager
À l’arrivée, un .war à placer dans le manager de Tomcat et à l’utiliser en lieu de place de JavaBridge.war.
La connexion avec PHP
Il vous faudra créer un vhost. Dans un fichier .php, essayez :
- require_once("http://localhost:8080/PSNext/java/Java.inc");
- $System = java("java.lang.System");
Si tout va bien, pas d’erreur et un beau et long var dump à lire.
Les services de l’API PSNext
Cette partie est en cours de rédaction, et sera mise à jour dès que possible...
Répondre à cet article
Commentaires