Remote Client Beispiel
Partner
Version: 3.0.0
Status: in Arbeit
Datum: 06.05.2020
Autor / Autoren: Malte Hülder
Dateiname: Remote Client Beispiel
adesso insurance solutions GmbH
Adessoplatz 1
44269 Dortmund
Telefon +49 231 7000-7000
Telefax +49 231 7000-1000
info@[Link]
[Link]
Partner
Dokument-Informationen
Dokumenthistorie
Version Datum Autor/-en Kommentare/ Status
Kundenkontakt-Informationen
Name Funktion Telefon E-Mail
ais-Kontakt-Informationen
Name Funktion Telefon E-Mail
Remote Client Beispiel 06.05.2020 > Remote Client [Link] 2/8
Partner
Inhaltsverzeichnis
1 Vorbereitung........................................................................... 4
2 Testclient ................................................................................ 4
3 Schnittstellen in Partner ........................................................ 7
3.1 Die Schnittstellen im Detail .................................................................. 8
3.1.1 PartnerFacade .............................................................................................. 8
3.1.2 PartnerFrontendFacade............................................................................... 8
3.1.3 MigrationFacade .......................................................................................... 8
Remote Client Beispiel 06.05.2020 > Remote Client [Link] 3/8
Partner
1 Vorbereitung
Um einen Remote Client entwickeln zu können, werden folgende Bibliotheken benö-
tigt:
► Client-Bibliotheken des Application Servers1, z.B.
> JBoss: wildfly-ejb-client 7.x
> Weblogic: [Link]
► [Link]
► [Link] (optional)
► [Link] (optional)
► [Link]
Die [Link] sowie die zugehörigen Javadoc-Datei sind Teil der
Lieferung zum Partnersystem, welche über das Paket partner-client-VERSION-
[Link] ausgeliefert werden. (Dabei steht VERSION immer für die Versionsnum-
mer des ausgelieferten Pakets.) Das Paket ist vollständig zu entpacken und die Da-
teien an vorgesehener Stelle abzulegen. Der Weblogic FullClient muss mit der Weblo-
gic-Installation erstellt werden2. Die Logging Bibliotheken sind Teil der Partner2010
Lieferung und sind im [Link] enthalten3.
Zusätzlich wird ein Java Development Kit der Version 1.8 benötigt.
Der Weblogic Server muss gestartet sowie die Anwendung Partner erfolgreich deployt
sein. Die Datenbank muss gestartet und vom Weblogic-Server aus erreichbar sein.4
2 Testclient
Mit folgendem Beispiel lassen sich die Remote Fassaden nutzen:
package [Link];
import [Link];
import [Link];
import [Link];
1 Die Beispiele beziehen sich im Folgenden auf den Weblogic Application Server, für einen JBoss sind
insbesondere Protokoll und Port auf den JBoss Server anzupassen.
2 java -jar <WL_HOME>/server/lib/[Link] ausführen. Weitere Beschreibung siehe Weblo-
gic-Dokumentation
3 Es ist auf die richtige Version zu achten, wenn die Bibliotheken von einer anderen Quelle stammen.
4 vgl. Installationshandbuch
Remote Client Beispiel 06.05.2020 > Remote Client [Link] 4/8
Partner
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class WeblogicTestclient {
public void pingTest(){
ParBeanLoginLocator locator = new ParBeanLoginLocator();
(1)
SimpleTestFacade testFacade = [Link]([Link]);
String result = [Link]();
if([Link]("*ping*")){
[Link]("Test erfolgreich!");
}else{
[Link]("Kein Remotezugriff möglich");
}
}
public void partnerAnlageTest(){
ParBeanLoginLocator locator = new ParBeanLoginLocator(USERNAME, PASSWORD);
(2)
BuSFacade buSFacade = [Link]([Link]);
NatuerlichePerson partner = new NatuerlichePerson();
[Link]("Mustermann");
[Link]("Ernst");
[Link](Geschlecht.A1);
[Link](Anrede.A1);
[Link](new GregorianCalendar(1956,3,4).getTime());
MDCWrapper mdcWrapper=new MDCWrapper("1");
(3)
Benutzer benutzer= new Benutzer("Tester", "Theo", "TST", "123456", Berech-
[Link]);
boolean fail=false;
try {
Remote Client Beispiel 06.05.2020 > Remote Client [Link] 5/8
Partner
[Link](mdcWrapper, partner, benutzer,
"Neuer Partner zum Test", new Date(), true);
} catch (DublettenException e) {
[Link]();
fail=true;
} catch (PlausibilisierungsException e) {
[Link]();
fail=true;
}
if(!fail){
[Link]("Partner '"+[Link]()+"' erfolgreich ange-
legt");
}
[Link](); (4)
}
public void partnerSuchentest(){
ParBeanLoginLocator locator = new ParBeanLoginLocator(USERNAME, PASSWORD);
(2)
BuSFacade buSFacade = [Link]([Link]);
MDCWrapper mdcWrapper=new MDCWrapper("2");
List<Suchergebnis> results=[Link](mdcWrapper, "Muster-
mann", (String)null, (Date)null, (String)null, (String)null, (String)null, false, 100);
(5)
for (Suchergebnis suchergebnis : results) {
[Link]("Es wurde Eintrag '"+suchergebnis+"' gefun-
den");
}
[Link](); (4)
}
/**
* @param args
*/
public static void main(String[] args) {
[Link]("[Link]", "t3://localhost:7001");
(6)
WeblogicTestclient testclient= new WeblogicTestclient();
[Link]();
[Link]();
[Link]();
}
Remote Client Beispiel 06.05.2020 > Remote Client [Link] 6/8
Partner
Wird das Programm ausgeführt, erscheint beim ersten Aufruf5:
Test erfolgreich!
Partner 'Mustermann' erfolgreich angelegt
Es wurde Eintrag '<1> <N> Mustermann Ernst 1956-04-04 <null> <null> null null null
null null <null>' gefunden
Zum Beispielcode ist folgendes Anzumerken:
► Die Klasse ParBeanLoginLocator stammt aus dem Package [Link]-
[Link] und dient dazu, einen speziell zum Weblogic passenden
JNDI Lookup auszuführen (1). Dabei können die Nutzerdaten eines Benutzers
übergeben werden (2), der die für die folgende Fachlogik erforderlichen Berechti-
gungen besitzt. Für den Nutzer der Klasse ist es nur noch relevant, die richtige
Fachlogik, die als Interface bereitsteht, zu übergeben und er erhält das passende
Remote-Bean. Damit die Klasse den passenden Server mit dem Lookup verbindet,
muss für den Remotezugriff die Systemvariable [Link] gesetzt sein (6)6.
► Der MDCWrapper dient dazu, eine fachlich zusammenhängende Identifikations-
nummer zu übertragen (3)7.
► Nach Abschluss der fachlichen Logik muss der Benutzer wieder abgemeldet wer-
den, damit die ggf. folgende Logik nicht mehr in seinem Namen und mit seinen
Berechtigungen ausgeführt wird (4).
► Die Suche wird hier nur über den Namen durchgeführt; Werte, die sich nicht such-
einschränkend auswirken, sollen nicht verwendet werden. Dazu wird der jeweilige
Parameter mit null belegt (5)8.
3 Schnittstellen in Partner
Folgende Schnittstellen dürfen von einem Client in Partner aufgerufen werden. Alle
Aufrufe erfolgen kontextbezogen. Aktuell soll von Applikationen nur noch die Partner-
Facade-Schnittstelle verwendet werden, die PartnerFrontendFacade ist der Oberflä-
che des Partnersystems vorbehalten. Alle anderen Schnittstellen sind veraltet und
5 Für jeden weiteren Aufruf wird ein weiterer Eintrag gefunden, bis die Datenbank gelöscht wird.
6 t3 wird verwendet, da in der Kombination WLS 10.0 & IBM JDK 1.5 die IIOP-Serialisierung von Java-
Enumerations nicht vollständig arbeitet (vgl. auch Installationshandbuch, Tunneling).
Dieses Verhalten wurde in WLS 10.3.3 & JDK 1.6 noch nicht überprüft.
7 Hier wurde eine feste Nummer eingeben, in der Praxis wird die Nummer vom aufrufenden System
übergeben.
8 vgl. JavaDoc
Remote Client Beispiel 06.05.2020 > Remote Client [Link] 7/8
Partner
sollten nicht mehr verwendet werden. Alle Aufrufe der Facaden werden im Detail in-
nerhalb von Partner dokumentiert.
3.1 Die Schnittstellen im Detail
Die aktuelle und vollständige JavaDoc der Schnittstellen befindet sich in dem Archiv
[Link] in dem Paket [Link].
3.1.1 PartnerFacade
Die Schnittstelle PartnerFacade ist die Schnittstelle über die sich Client-Anwendungen
mit dem Partnersystem verbinden und mit ihm Daten austauschen.
3.1.2 PartnerFrontendFacade
Die Schnittstelle PartnerFrontendFacade ist für die Oberflächenentwicklung von Part-
ner vorgesehen.
3.1.3 MigrationFacade
Die (veraltete) Schnittstelle MigrationFacade kommt im Zuge der Migration zum Ein-
satz.
Remote Client Beispiel 06.05.2020 > Remote Client [Link] 8/8