This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

--Eigene Objekte am Server verwenden

Dokumente für die Entwicklung von und mit JVx.

--Eigene Objekte am Server verwenden

Postby Development@SIB » Tue Sep 29, 2009 4:03 pm



Dieser Artikel ist veraltet - Bitte verwenden Sie unser neues System

https://doc.sibvisions.com





Sowohl am Client als auch am Server können Entwickler Ihre eigenen Objekte integrieren. Wir beschreiben hier jedoch nur die Verwendung von Objekten die am Server integriert und vom Client angesprochen werden.

Am Server kann nahezu jedes beliebige Java Objekt/Bibliothek/API verwendet werden. Eine Grundvoraussetzung ist die Kompatibilität zur verwendeten JVM des Servers. Weiters sollte darauf geachtet werden, daß Stateless Aufrufe unterstützt/angeboten werden. Es ist zwar kein Problem Stateful Objekte zu verwenden, hätte aber Auswirkungen auf die Skalierbarkeit einer Applikation.

Alle Server Objekte die von JVx in Lifecycle Objekten verwendet werden, unterstützen Stateless Aufrufe.


Anwendungsbeispiel

Wir erstellen ein Objekt mit dem Datenbank Loggings durchgeführt werden können und verwenden dieses Objekt in unserer Applikation.

Das Log Objekt könnte wie folgt implementiert werden:

Code: Select all
/**
 * The <code>Logger</code> class is a simple log handler for databases.
 *
 * @author René Jahn
 */
public class Logger
{
   //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   // Class members
   //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   /** the log statement. */
   private PreparedStatement psLog;
   
   //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   // Initialization
   //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   /**
    * Creates a new instance of <code>Logger</code> for a specific database.
    *
    * @param pAccess the database access
    * @throws SQLException if the log statement could not be initialized
    */
   public Logger(DBAccess pAccess) throws SQLException
   {
      psLog = pAccess.getConnection().prepareStatement("");
   }
   
   /**
    * Logs an error message to the database.
    *
    * @param pMessage the error message
    * @throws SQLException if it's not possible to log an error message
    */
   public void error(String pMessage) throws SQLException
   {
      psLog.setString(1, pMessage);
   }
   
}   // Logger


Das Objekt verwenden wir im Lifecycle Objekt unserer MasterSession:

Code: Select all
public class Session extends Application
{
   ...
   ...

   /**
    * Gets the database logger.
    *
    * @return the logger instance
    * @throws Exception if an exception occurs during log creation
    */
   public Logger getLogger() throws Exception
   {
      Logger log = (Logger)get("logger");
      
      if (log == null)
      {
         log = new Logger(getDBAccess());
         
         put("logger", log);
      }
      
      return log;
   }
}    // Session


Nun können wir in unserer Applikation einen Log Aufruf durchführen:

Code: Select all
getConnection().call("logger", "error", "This is an error message!");

Durch den Aufruf wird die error Methode des logger Objektes aufgerufen.
User avatar
Development@SIB
 
Posts: 325
Joined: Mon Sep 28, 2009 1:54 pm

Return to Documentation (DE)