Menu

Seite422

Anonymous

4.2.2 Definition der Schnittstelle zwischen Präsentations- und Logikschicht

Gegenüber Iteration 1 wurde im ServiceLocator das direkte Setzen der Properties im Code des Konstrukturs über System.getProperties() sowie das direkte Setzen der Umgebungsvariablen des InitialContexts aus dem Code entfernt und in die Datei jndi.properties ausgelagert.

java.rmi.server.codebase=http://localhost/java/rmi
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099

Diese Datei muss sich beim Ausführen des Programms im Klassenpfad befinden. Der Konstruktur reduziert sich entsprechend auf folgenden Code:

     private ServiceLocator() throws SystemException {
         try {
            URL oUrl = ClassLoader.getSystemResource("client.policy");
            System.getProperties().put("java.security.policy",
                    oUrl.toExternalForm());
            System.setSecurityManager(new RMISecurityManager());
            context = new InitialContext(env);
         } catch (NamingException ne) {
            throw new SystemException(ne);
         }
      }

Die Enumeration der Services, RemoteBusinessService, wurde um weitere Schnittstellen erweitert und enthält nun

      public enum RemoteBusinessService {
         AddressService, ArticleService, ArticleTypeService, InvoiceService, CustomerService, PersonService
      };

Die SystemException wurde komplett aus dem Projekt entfernt und durch ServiceException ersetzt. Es wird nun bei Fehlern immer

      throw new ServiceException("Could not connect to server");

geworfen. Im Interface Manager hat sich die Signatur der update-Methode verändert. Sie gibt nun auch wie beispielsweise die create-Methode die (geänderte) Entität zurück. Grund dafür ist, dass man so auch für verbundene Entitäten, die möglicherweise im Zuge der Änderung auf Client-Seite neu angelegt und der Eltern-Entität hinzugefügt worden sind, die Ids erhält, die beim Persistieren der verbundenen Entitäten beim Update der Eltern-Entität generiert worden sind. Sonst ist alles beim Alten geblieben.

Hinweise zur Verwendung von JNDI: Die JNDI-Benamung ist nicht standardisiert sondern abhängig vom jeweilig verwendeten Anwdnungsserver: EJB 3 Portability Issue: why JNDI names are not standardized

weiter zu 4.3.2 Definition der Schnittstelle zwischen Präsentations- und Logikschicht in der Iteration 3
weiter zu 4.2.3 Definition der Schnittstelle zwischen Logik- und Persistenzschicht
zurück zu 4.1.2 Definition der Schnittstelle zwischen Präsentations- und Logikschicht in der Iteration 1
zurück zu 4.2.1 Einrichtung der Entwicklungs- und Laufzeitumgebung
zurück zu 4.2 Iteration 2
zurück zu 4 Implementierung
zurück zu [FrontPage]


Related

Documentation: FrontPage
Documentation: Seite400
Documentation: Seite412
Documentation: Seite420
Documentation: Seite421
Documentation: Seite423