-
Notifications
You must be signed in to change notification settings - Fork 0
Home
thanosk edited this page Aug 30, 2012
·
3 revisions
Οι στόχοι του συγκεκριμένου πειράματος είναι να παρουσιαστεί συνοπτικά ο τρόπος με τον οποίο μπορεί να γίνει η χρήση του πρωτοκόλλου του PHP-Java Bridge ώστε να γεφυρώσει ένα Java Web Application που τρέχει σε απομακρυσμένο J2EE Web Container/Server (έστω Remote Server 2) και ένα PHP project που τρέχει σε απομακρυσμένο Apache Web Server (έστω Remote Server 1).
Από αυτό το πείραμα θα θέλαμε να διαπιστώσουμε κατά πόσο η χρήση του συγκεκριμένου PHP-Java Bridge μπορεί να βοηθήσει στο γεφύρωμα μεταξύ Open eClass και BetaCMS.
- Apache/PHP Server (Remote Server 1)
- JBoss Application Server (Remote Server 2)
- PHP-Java Bridge War deployable
- EJB3 Session Bean Jar deployable
- PHP Script που κάνει χρήση του PHP-Java Bridge Client API
Περιγράφουμε την εγκατάσταση του πειράματος σε βήματα:
- Εγκαθιστούμε (deploy) στον JBoss Application Server το Jar με το EJB3 Session Bean που θέλουμε να χρησιμοποιήσουμε για το πείραμα (δίνεται παρακάτω παράδειγμα, μπορούμε να χρησιμοποιήσουμε το CalculatorBean από το JBoss EJB3 Tutorials)
- Εγκαθιστούμε (deploy) στον JBoss Application Server το PHP-Java Bridge War deployable
- Εγκαθιστούμε στον Apache PHP Server το php script (δίνεται παρακάτω παράδειγμα)
- Ρυθμίζουμε στο php script την IP του JBoss Server (στο παράδειγμα γίνεται η χρήση του 127.0.0.1). Στα συγκεκριμένα παραδείγματα, ο JBoss Application Server πρέπει να δίνει πρόσβαση στην πόρτα 8080.
<?php
require_once("http://127.0.0.1:8080/JavaBridge/java/Java.inc");
$System = new JavaClass("java.lang.System");
$props = $System->getProperties();
echo "Using java VM from: ${props['java.vm.vendor']} \n<br />";
if(!java_values($props['java.vm.vendor']->toLowerCase()->startsWith("sun")))
echo "WARNING: You need to run this example with the SUN VM\n";
$jndiProps = array(
"java.naming.factory.initial" => "org.jnp.interfaces.NamingContextFactory",
"java.naming.factory.url.pkgs" => "org.jboss.naming:org.jnp.interfaces",
"java.naming.provider.url" => "127.0.0.1"
);
$ctx = new java("javax.naming.InitialContext", $jndiProps);
$calculator = $ctx->lookup("CalculatorBean/remote");
echo $calculator->add(1,1) . "\n<br />";
echo $calculator->subtract(1,1) . "\n<br />";
?>
Για λόγους απλότητας, για EJB3 example code, χρησιμοποιούμε ένα παράδειγμα από τα tutorials του JBoss:
package org.jboss.tutorial.stateless.bean;
import javax.ejb.Stateless;
@Stateless
public class CalculatorBean implements CalculatorRemote, CalculatorLocal
{
public int add(int x, int y)
{
return x + y;
}
public int subtract(int x, int y)
{
return x - y;
}
}