Willkommen beim LKV NRW
EDVISO agri Net
Projekte
-Datenaustausch
- ADIS-Datenabruf mit einer Query
- Beschreibung eines einfachen JAVA Clients
-Beschreibung eines JAVA-CLIENTS (Beispiel: Umwandlung zu XML)
- NLF
- AdisViewer
 
  Zur Anmeldung:
 Benutzer/BNR
 
 Passwort/PIN
 
 Mitbenutzer
 
 

ADIS-Dateien auf dem ADISSERVER des LKV Westfalen-Lippe verarbeiten

Andreas Glahn

Beschreibung eines Clients zur Umwandlung zu XML

 

 

Dieser Client verbindet sich über eine Socket-Verbindung mit dem AdisServer beim Landeskontrollverband Westfalen-Lippe

und sendet einen Anmeldestring (beginnt mit ?AN) und dann die Zeilen einer AdisDatei (ADISDATEI.ads).

Im Anmeldestring wird als SCHREIBOBJEKT XML gewählt, wodurch der Server die Daten in XML zurückgibt. Weiterhin werden im

Programm nur die Zeilen, welche mit XML beginnen ausgegeben (der Server schickt noch weitere Kommentarzeilen, die hier

aber unterdrückt werden sollen).

Als Ergebnis sendet der Server die ErgebnisZeilen.

Es werden keine weiteren Klassen des LKVs benötigt. Dieses Programm ist mit einer Standard-JavaInstalltion lauffähig.

Im Beispiel werden die Daten aus dem Ergebnis der Query-Abfrage des DataDictionries verwendet.

Die Ausgaben erfolgen auf der Konsole und können mit

folgendem Aufruf in eine Datei umgeleitet werden:

 

java microAdisClient > DATEINAME_XML.ads
Der Quellcode:


 

/**
* Title: microAdisClient.java
* Description: micro Client showing how to cummunicate with AdisServer via SocketConnction
* Copyright: Copyright (c) 2003
* Company: Landeskontrollverband Westfalen-Lippe www.lkv-wl.de
* @author Andreas Glahn
* @version 1.0
*/

import java.net.*;
import java.io.*;

public class microAdisClient{
public static void main(String[] args){
Socket theSocket;
DataInputStream empfangsDatenStream;
PrintStream sendeDatenStream;
BufferedReader EingabeDatei = null;
String Line;
String EingabeZeile = "";
String filename="ADISDATEI.ads";
try {
EingabeDatei = new BufferedReader(new FileReader(filename));
} catch (IOException e){
System.out.println("Fehler beim öffnen von " + filename+".");
}
try {
theSocket = new Socket("www.lkv-wl.de",1502);
empfangsDatenStream = new DataInputStream(theSocket.getInputStream());
sendeDatenStream = new PrintStream(theSocket.getOutputStream());
/* Anmeldung und Ausgabe nach XML definieren*/
sendeDatenStream.println("?AN:BENUTZER=GAST;PASSWORT=GAST;PROJEKT=lkv;LESEDB=LKVDB.ADISINT;ADISDB=LKVDB.ADISINT;SCHREIBEN=XML;");
/* ServerAntwort */
String eingeleseneZeile = null;
eingeleseneZeile = empfangsDatenStream.readLine();
if (eingeleseneZeile != null){
/* AnmeldeZeile soll nicht ausgegeben werden */
// System.out.println(eingeleseneZeile);
}

/* XML Header schreiben */
// hier evtl. Beginn und Ende des String mit spitzen Klammern versehen
System.out.println("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
System.out.println("<LKVAdisXML>");
/* Die einzelnen Zeilen der Eingabedatei an den Server übergeben und die ErgebnissZeilen abfragen */
while (EingabeZeile != null){
try{
EingabeZeile = EingabeDatei.readLine();
/* Zeile an den Server übregeben */
sendeDatenStream.println(EingabeZeile);
/* Daten empfangen */
boolean transakt_beendet = false;
while (!transakt_beendet){
eingeleseneZeile=empfangsDatenStream.readLine();
/* Filtern auf XML Rückgabe */
if (eingeleseneZeile.startsWith("XML")) {
// XML: nicht mitausgeben, deshalb erst ab Position 4
System.out.println(eingeleseneZeile.substring(4));
}
if (eingeleseneZeile != null){
if (eingeleseneZeile.startsWith("T")|| eingeleseneZeile.startsWith("tE") ) transakt_beendet = true;
if (eingeleseneZeile.startsWith("ZN")|| eingeleseneZeile.startsWith("null") ) transakt_beendet = true;
if (eingeleseneZeile.equals("tN")) eingeleseneZeile = "TN";
} else {
transakt_beendet = true;
}
}
} catch (IOException e){
System.out.println("Fehler beim lesen der Datei bzw. bei der Datenübertragung.");
}
}
/* XML-Datei beenden */
// hier evtl. Beginn und Ende des String mit spitzen Klammern versehen
System.out.println("</LKVAdisXML>");
/* Beenden der Verbindung */
sendeDatenStream.println("ZN");
theSocket.close();
} catch (IOException e){
System.err.println(e);
}
try{
EingabeDatei.close();
} catch (IOException e){
System.out.println("Fehler beim Schließen der Datei.");
}
}
}

Ausführen von Querys beim LKV WL Abfragen mit einem Client

 
 
 
Seite 324, Letzte Änderung:21.12.2004 
 Nach oben  Seite drucken   Seite empfehlen        
1997-2005 LKV NRW e.V.