allgemeine Datenbankschnittstelle für Webservice

Status
Nicht offen für weitere Antworten.

Niki

Top Contributor
Wenn du mehrere Personen zurück geben möchtest musst du das mit einer Collection oder einem Array machen:

Code:
rs = stmt.executeQuery....
List erg = new ArrayList();
while(rs.next()){
  Person p = new Person();
  p.setZuname(rs.getString("last_name"));
.....
  erg.add(p);

}


return erg;

Wozu benötigst du die Spalten informationen in deinem Person Objekt? Beim befüllen der Daten weißt du ja welche Spalte der Tabelle du auf welches Attribut mappen musst. Wozu also die Spaltennamen mit speichern?
 

JavaLearn

Bekanntes Mitglied
Ja stimmt eigentlich mir ist das mit dem füllen von mehreren Spalten eigentlich wichtiger...

Habe nun die while schleife mit eingefügt aber das mit dem return erg java zeigt da ein Fehler an da es nicht vom Objekt Person ist ...
 

Niki

Top Contributor
Ja ist ja klar, dann musst du die Methode halt so deklarieren:

Code:
public List listPersonen(String idFrom, String idTo){
  List erg = new ArrayList();
  //Hier sql Code, Objekte befüllen und in Liste einfügen....
  return erg;
}

WebServices kennen keine generischen Typen, eventuell musst du es auch so machen:
Code:
public Person[] listPersonen(String idFrom, String idTo){
  List erg = new ArrayList();
  //Hier sql Code, Objekte befüllen und in Liste einfügen....
  Person[] pArr = new Person[erg.size()];
  erg.toArray(pArr);
  return pArr;
}
 

JavaLearn

Bekanntes Mitglied
Meinst du das ungefähr so, habe das mal so abgeändert ...

Code:
			while(rs.next()){ 
			  person = new Person(); 
			  person.setNachname(rs.getString("last_name")); 
			  person.setVorname(rs.getString("first_name")); 
			  person.setGebDatum(rs.getDate("geb_id")); 
			  erg.toArray(pArr);
			}
 

Niki

Top Contributor
nicht ganz, der Teil der Schleife muss so aussehen:
Code:
public Person[] listPersonen(int Id, int Ids) {
      Person person = null;
      List erg = new ArrayList();
//du weißt die Größe hier noch nicht!
      Person[] pArr = null;
   
      String Sql = "Select last_name, first_name, geb_id from employees where employee_id = ?";
      try
      {
         Class.forName(DbDrv);
         conn = DriverManager.getConnection( DbUrl, User, Pwd );
         stmt = conn.prepareStatement(Sql);
         stmt.setInt(1, Id);
         stmt.setInt(2, Ids);
         
         rs = stmt.executeQuery();

          
         while(rs.next()){
           person = new Person();
           person.setNachname(rs.getString("last_name"));
           person.setVorname(rs.getString("first_name"));
           person.setGebDatum(rs.getDate("geb_id"));
          
         }
         //hier wissen wir die Größe!
         pArr = new Person[erg.size()];
         erg.toArray(pArr);
         
         
         rs.close();
         stmt.close();
         conn.close();
         

      }catch (Exception ex) {
         ex.printStackTrace();
      }
      
      
   return pArr;
   
   }
 

JavaLearn

Bekanntes Mitglied
dank dir nochmal viels, das auslesen des ganzen auf der Client Seite muss das auch nacheinander folgen...?!

Denn ich will ja, dass die Nachnamen , Vornamen und Geburtstage alle untereinander stehen.
 

Niki

Top Contributor
Sicher, du bekommst vom Server ein Array zurück:

Code:
Person[] pArr = service.getPersonen(fromID, toID);
for(Person p : pArr){
  System.out.println(p.toString());
//oder
  System.out.println(p.getZuname() + " " + p.getVorname() + ", " + p.getGebDatumAsString());
}

Wie auch immer du halt deine Daten aufbereiten möchtest
 

JavaLearn

Bekanntes Mitglied
mmh das verstehe ich nicht so ganz denn mein Client bestitzt doch nicht die klasse Person wie soll dann das ganze hier erfolgen mit diesem sourcecode?
 

Niki

Top Contributor
Was soll dein Client machen? Ich vermute Personen mittels id auslesen, oder?
Dann sollte der Client ja die Liste der Personen zurück bekommen.
 

JavaLearn

Bekanntes Mitglied
ja genau das sollte er machen es werden die beiden ids eingegeben und dann soll eine ausgabe erzeugt werden...

jep genau die liste wie kann ich die im client laden damit diese ausgegeben werden kann..?
 

Niki

Top Contributor
Wie ist dein Service definiert? Dein Service sollte halt die Methode
Code:
public Person[] getPersonen(int idFrom, int idto);
haben.
Diese kann dein Client dann aufrufen und die Personen ausgeben
 

JavaLearn

Bekanntes Mitglied
ja genau so sieht die aus aber wie kann nun der client diese hier aufrufen das klappt irgendwie nicht so ganz...

Kriege das mit der Ausgabe so nicht hin...

Code:
System.out.println(resp.get_return());        //wird "null" ausgegeben
[/quote]
 

Niki

Top Contributor
Der Aufruf des WebServices muss irgendow so ausschaun:

Code:
		MyWebServiceServiceLocator locator = new MyWebServiceServiceLocator();
		MyWebService service = locator.getmywebservice();
		Person[] pArr = service.getPersonen(1, 10);

Zuerst erstellst du den locator, dem musst du eventuell den Endpoint setzen, danach holst du dir vom Locator das Service selbst. Von dem Service-Objekt kannst du dann die definierte Methode aufrufen. Diese wird dann am Server ausgeführt und du bekommst deine Liste von Personen zurück.
 

Niki

Top Contributor
Langsam wird es anstrengend, ich bin mir nicht sicher ob du wirklich weißt was du willst oder tust, vielleicht solltest du mal ein bisschen was über soap, wsdls und webservices im allgemeinen lesen.
Kurz dir Vorgehensweise:
du erstellst ein ServiceInterface bzw. eine ServiceKlasse mit der Implementierung, du solltest auch schon alle Objekte, die du für das Service benötigst definieren und ausimplementieren (Person in deinem Fall)
von dieser Klasse lässt du dir eine wsdl Datei generieren (über eclipse plugin oder ant). Diese wsdl Datei beschreibt dir dein WebService.
Anhand der WSDL-Datei kannst du dir deine Klassen neu generieren lassen (dabei nicht die Implementierungsklasse überschreiben, das kann man aber alles angeben)
Nachdem die WebService Klassen generiert wurden kannst du mittels build.xml das WebService deployen (aar Datei erzeugen lassen und in deine WebApp kopieren - Konfiguration nicht vergessen: web.xml, libs...)
Jetzt ist das WebService fertig und kann mit einem Client angesprochen werden. Der obige Code ist der Code auf client Seite!
 

JavaLearn

Bekanntes Mitglied
doch im großen und ganzen ist mir bewusst was ich machen will nur die Umsetzung klappt nicht so ganz.
Muss den z.b für ein Webservice dieser ServiceInterface unbedingt bereitgestellt werden ist es ohne nicht möglich denn habe bis jetzt noch nie ein ServiceInterface genutzt in den Webservices...

Axis2 generiert die build.xml und auch die wsdl datei. Bei mir ist halt das Problem auf der ClientSeite wie dieser das Objekt "Person" zu kennen weiss...

du hast irgendwie auch kein response bei dir, ich habe bei meinen clients immer am ende ein


Code:
System.out.println(response.get_return()) 
//oder
        System.out.println(response.get_return().getNachname() + " " + response.get_return.getVoraname() + ...);

Ausserdem besitze ich auf der Clientseite zwei java sourcen die wären...
"CallbackHandler.java" und "Stub.java" die automatisch generiert werden zu dem erstelle ich noch eine Klasse namens Client...
 

Niki

Top Contributor
So wie das ausschaut hast du ein asynchrones Service gebaut. Da kann ich dir nicht weiter helfen da ich selber bis jetzt nur synchrone gebaut habe. Schau nochmal nach wie du das Service generieren hast lassen. Es sollte wahrscheinlich synchron sein.
Das Interface brauchst du nicht umbedingt. Ich erstell meistens eins, find es irgendwie schöner.
 

Niki

Top Contributor
Nein, ich schreibe die Files die ich für das Service brauche selber, damit ich IDE-unabhängig bleibe und die Kontrolle nicht aus der Hand gebe. Schau dir mal diesen Thread an: webservice_mit_axis2
 

JavaLearn

Bekanntes Mitglied
aha ok du machst eigentlich alles wenn man das so haben will von der hand...

mmh dann muss ich mal schauen wie ich das mit dem client bei mir hinkriege damit da eine vernünftige Ausgabe zustande kommt zurzeit gibt er nur null aus...
 

JavaLearn

Bekanntes Mitglied
hi,
hab das mit dem Client nun auch hinbekommen, wollte mich nochmals bei dir bedanken...

Ich wünsch dir noch frohe Weihnachten und einen guten Rutsch ins neue Jahr
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
T Allgemeine Frage: GUI für 3D-Visualisierung Allgemeine Java-Themen 5
R Allgemeine Frage zu RMI bei MVC Allgemeine Java-Themen 2
M Allgemeine Frage: Wie lernt man Java / Programmieren von Grund auf? Allgemeine Java-Themen 7
A Methoden Allgemeine Java Frage Allgemeine Java-Themen 3
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
J Allgemeine Fragen zu Vererbung Allgemeine Java-Themen 1
M Allgemeine Fragen meinerseits Allgemeine Java-Themen 4
D Ein paar allgemeine Fragen zu Java Allgemeine Java-Themen 19
Q Kapselung Allgemeine Design- Frage Allgemeine Java-Themen 8
I Allgemeine Herangehensweise bei Übernahme Allgemeine Java-Themen 19
J Erste Schritte Applet allgemeine Funkion Allgemeine Java-Themen 8
Semox Grapheneditor - Allgemeine Fragen zum Logikdesign Allgemeine Java-Themen 3
S Stream ReadLine() Allgemeine Frage Allgemeine Java-Themen 5
M allgemeine frage zur plattformunabhängigkeit Allgemeine Java-Themen 2
S 2 Fragen allgemeine fragen zu final und interface Allgemeine Java-Themen 13
D Allgemeine Fragen zum Speichern Allgemeine Java-Themen 3
F allgemeine Fragen zu Java Allgemeine Java-Themen 9
M allgemeine Architekturfrage Allgemeine Java-Themen 4
J Ganz allgemeine Frage Allgemeine Java-Themen 3
Oneixee5 Für die RPi-Bastler ... Allgemeine Java-Themen 0
I PDF2Tiff für Fax Allgemeine Java-Themen 0
W Vergleichstool für xml-Dateien Tortoise-svn Verknüpfung Allgemeine Java-Themen 2
Zrebna Tipps für Organisation von Code-Reviews nach einem Pull Request. Allgemeine Java-Themen 5
Zrebna Bitte um Empfehlungen für "zeitlose" Bücher bzgl. Backend mit Spring und Beans Allgemeine Java-Themen 25
G Lesbare args für die main-Methode Allgemeine Java-Themen 6
B Algorithmus für Arbeit mit fehlenden Listenelementen? Allgemeine Java-Themen 1
kodela Eingabe für TextArray bedingt sperren Allgemeine Java-Themen 3
Karl_Der_Nette_Anfänger Hat wer ne Lösung für verknüpfte Postleitzahlen? (Baum/Wurzel Struktur) Allgemeine Java-Themen 11
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
G KeyListener für JTextField Allgemeine Java-Themen 5
webracer999 Library für Textsuche (z. B. include/exclude, and/or)? Allgemeine Java-Themen 5
I Module-Info für Jar erzeugen Allgemeine Java-Themen 7
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
B Simpler Eventlistener für Tastaturtaste bauen? Allgemeine Java-Themen 13
G Eingegebenen Text Zeile für Zeile ausgeben lassen Allgemeine Java-Themen 11
E Key für TOTP Algorythmus(Google Authentificator) Allgemeine Java-Themen 0
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
M pfx-Zertifikat in Tomcat für SSL-Verschlüsselung nutzen Allgemeine Java-Themen 14
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
jhCDtGVjcZGcfzug Klassen Was genau passiert hier? Kann mir das jemand bitte Zeile für Zeile erklären? Allgemeine Java-Themen 1
rosima26 Bester Sortieralgorithmus für kurze Arrays Allgemeine Java-Themen 40
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
MangoTango Operatoren while-Schleife für Potenz Allgemeine Java-Themen 3
B Lottospiel, genug Reihen tippen für 3 Richtige (Spaß mit Arrays)? Allgemeine Java-Themen 46
B Mit welchen Datentypen und Strukturierung am Besten dutzende Baccaratspiele Shcritt für Schritt durchsimulieren? Allgemeine Java-Themen 26
D Klassendesign für einen Pascal Interpreter Allgemeine Java-Themen 6
I OCR Library für Belegerkennung Allgemeine Java-Themen 7
farah GetterMathod für Farbkanäle Allgemeine Java-Themen 6
B Welcher Datentyp für sehr große Zahlenbereiche? Allgemeine Java-Themen 1
S Webservices für binäre Daten? Allgemeine Java-Themen 5
G Licence-Header für InHouse entwickelten Source Allgemeine Java-Themen 8
M Schleife für einen TicTacToe Computer Allgemeine Java-Themen 5
O git ignore für Intellji braucht es die .idea Dateien? Allgemeine Java-Themen 8
F Java Script für das Vorhaben das richtige? Allgemeine Java-Themen 9
M wiviel Java muss ich für die Berufswelt können ? Allgemeine Java-Themen 5
Robertop Datumsformat für GB ab Java 16 Allgemeine Java-Themen 1
Thallius Verschiedene entities für gleichen Code…. Allgemeine Java-Themen 8
OnDemand Zentrale "Drehscheibe" für verschiedene APIs Allgemeine Java-Themen 14
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
D SHA-3 für Java-version 1.8 Allgemeine Java-Themen 1
N Validator für einen SQL-Befehl Allgemeine Java-Themen 22
Muatasem Hammud Erstellung von Testdaten für Arrays Allgemeine Java-Themen 6
B Logikfehlersuche, das perfekte Lottosystem für 3 Richtige mit Arraylists? Allgemeine Java-Themen 71
G Methoden für die Zukunft sinnvoll? Allgemeine Java-Themen 4
M API für PLZ Umkreissuche Allgemeine Java-Themen 3
1Spinne JDK 8 für Eclipse installieren Allgemeine Java-Themen 5
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
L Methoden Parser für gängige Datumsformate? Allgemeine Java-Themen 1
H Interface PluginSystem ClassNotFound exception für library Klassen Allgemeine Java-Themen 10
N relativier Pfad für sqlite-Datenbank in Gradle/IntelliJ Allgemeine Java-Themen 2
buchfrau Anagram für beliebiges Wort Allgemeine Java-Themen 2
TonioTec Api für Datenaustausch zwischen Client und Server Allgemeine Java-Themen 0
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
Kirby.exe Distanz Map für die Distanztransformation erstellen Allgemeine Java-Themen 1
F PI Regler für Heizung Allgemeine Java-Themen 7
8u3631984 Generelle Log4j.xml für alle Module Allgemeine Java-Themen 5
M Wie übergebe ich den Zähler für die Anzahl Rekursionsschritte korrekt? Allgemeine Java-Themen 2
B Login für User, der im Hintergrund Schedules ausführt Allgemeine Java-Themen 16
L RegEx für Teile einer Berechnung Allgemeine Java-Themen 14
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
Z Welches GUI Framework für Java ist aktuell? Allgemeine Java-Themen 16
N Convert.FromBase64 von C# für Java Allgemeine Java-Themen 11
N fixed-keyword von C# für Java Allgemeine Java-Themen 6
O Suche Scripter für alt:V Project! Allgemeine Java-Themen 0
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
O Suche Unterstützung für ein OpenSource-Projekt (grafischer Editor) Allgemeine Java-Themen 13
Kirby.exe Software für Graphische Visualisierung Allgemeine Java-Themen 20
B OOP Auslöser für NullPointerException Allgemeine Java-Themen 3
L Generator für einen Parser implementieren Allgemeine Java-Themen 13
DonMalte Ambitioniertes Projekt für Einsteiger & Motivierte Allgemeine Java-Themen 0
Kirby.exe Movement System für Spiel Allgemeine Java-Themen 13
Kirby.exe Framework für Game Design Allgemeine Java-Themen 8
W Alternative für Threads Allgemeine Java-Themen 6
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
Elyt Compiler-Fehler Datei kann nicht erstellt werden. Die Syntax für den Dateinamen etc. ist falsch. Allgemeine Java-Themen 2
Thallius Rätsel für Windows Profis Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben