org.zlatan.rmi
Class RmiController

java.lang.Object
  extended byjava.rmi.server.RemoteObject
      extended byjava.rmi.server.RemoteServer
          extended byjava.rmi.server.UnicastRemoteObject
              extended byorg.zlatan.rmi.RmiController
All Implemented Interfaces:
java.rmi.Remote, RmiControllerInterface, java.io.Serializable

public class RmiController
extends java.rmi.server.UnicastRemoteObject
implements RmiControllerInterface

Classe che implementa il server RMI del modulo IBRA. Un ordine d'acquisto puņ essere inviato via RMI a questo server: deve trattarsi di un PurchaseOrderType compilato nei campi principali (quelli non di default). Il server utilizza un PurchaseOrderSender come proxy per l'invio del messaggio JMS al PrepareRequestDispatcher.

See Also:
PrepareRequestDispatcher, Serialized Form

Field Summary
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Constructor Summary
RmiController(java.lang.String connFact, java.lang.String destName)
          Costruttore.
 
Method Summary
 void insertPO(PurchaseOrderType po)
          L'implementazione dell'unico metodo che l'interfaccia RMI espone verso l'esterno.
static void main(java.lang.String[] args)
          Metodo che lancia il server.
 
Methods inherited from class java.rmi.server.UnicastRemoteObject
clone, exportObject, exportObject, exportObject, unexportObject
 
Methods inherited from class java.rmi.server.RemoteServer
getClientHost, getLog, setLog
 
Methods inherited from class java.rmi.server.RemoteObject
equals, getRef, hashCode, toString, toStub
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RmiController

public RmiController(java.lang.String connFact,
                     java.lang.String destName)
              throws java.rmi.RemoteException
Costruttore. Crea il PurchaseOrderSender utilizzando i parametri passati.

Parameters:
connFact - il nome JNDI della ConnectionFactory JMS
destName - il nome JNDI della coda JMS per contattare PrepareRequestDispatcher
Method Detail

insertPO

public void insertPO(PurchaseOrderType po)
              throws java.rmi.RemoteException
L'implementazione dell'unico metodo che l'interfaccia RMI espone verso l'esterno.
Il metodo:
  1. controlla che sia presente almeno uno tra partner number e from nell'ordine di acquisto in ingresso: in caso contrario lancia una eccezione
  2. inserisce il valore rmi nel campo protocol dell'ordine
  3. eventualmente, calcola un purchaseOrderNumber per l'ordine e lo setta
  4. controlla che sia presente almeno un codice materiale: in caso contraio, lancia una eccezione
  5. invia l'ordine utilizzando il PurchaseOrderSender

Specified by:
insertPO in interface RmiControllerInterface
Throws:
java.rmi.RemoteException

main

public static void main(java.lang.String[] args)
Metodo che lancia il server. Crea una istanza del driver e lo registra presso con il nome specificato nel file rmicontroller-config.xml presso il rmiregistry in ascolto su un host anch'esso specificato in fase di configurazione.

See Also:
ConfigFile