Skip to content
thanosk edited this page Aug 30, 2012 · 3 revisions

Στόχοι του test case

Οι στόχοι του συγκεκριμένου πειράματος είναι να παρουσιαστεί συνοπτικά ο τρόπος με τον οποίο μπορεί να γίνει η χρήση του πρωτοκόλλου του 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.

diagram 1

Προαπαιτούμενα εργαλεία

Εγκατάσταση

Περιγράφουμε την εγκατάσταση του πειράματος σε βήματα:

  1. Εγκαθιστούμε (deploy) στον JBoss Application Server το Jar με το EJB3 Session Bean που θέλουμε να χρησιμοποιήσουμε για το πείραμα (δίνεται παρακάτω παράδειγμα, μπορούμε να χρησιμοποιήσουμε το CalculatorBean από το JBoss EJB3 Tutorials)
  2. Εγκαθιστούμε (deploy) στον JBoss Application Server το PHP-Java Bridge War deployable
  3. Εγκαθιστούμε στον Apache PHP Server το php script (δίνεται παρακάτω παράδειγμα)
  4. Ρυθμίζουμε στο php script την IP του JBoss Server (στο παράδειγμα γίνεται η χρήση του 127.0.0.1). Στα συγκεκριμένα παραδείγματα, ο JBoss Application Server πρέπει να δίνει πρόσβαση στην πόρτα 8080.

Δείγμα Πηγαίου Κώδικα

PHP Script Source Code

<?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 />";

?>

Java EJB3 Source Code

Για λόγους απλότητας, για 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;
   }
}

Σύνδεσμοι