Schnittstelle über Webservice SOAP

Status
Nicht offen für weitere Antworten.
P

PrimeTimeBob

Gast
Hallo
Also ich soll mich jetzt mit folgendem auseinandersetzten und brauche dringend hilfe und tipps von euch.
Ich soll zu einen bestimmte Programm eine-Schnittstelle entwerfen,
die über einen WebService (SOAP) zur Verfügung gestellt werden soll.

Könnt ihr mir den genau erklären wie das funktionieren soll und was ich beachten muss und wie
genau das funktioniert und vieleicht schonmal ein paar Starthilfen geben könnt.
 

Ebenius

Top Contributor
Zuerst solltest Du Dich informieren, was SOAP eigentlich ist. Ich fange meist mit der Wikipedia an... wikipedia: SOAP. Vielleicht nützt Dir auch der Sun Artikel: Overview of SOAP etwas. Vielleicht ein einfaches Tutorial w3schools: SOAP. Dann kannst Du Dir noch ein WebService-Framework für Java™ ansehen; zum Beispiel Apache Axis2. Und dann solltest Du viel Zeit einplanen, bis Deine ersten Beispiele funktionieren.

Zum Entwickeln hilft sicher das Eclipse Webtools Projekt. Und ein nicht zu unterschätzendes kleines Tool zum Debuggen, namens tcpmon: An open-source utility to Monitor A TCP Connection.

Viel Erfolg!
Ebenius
 
P

PrimeTimeBob

Gast
ok danke ich werde mir die ganzen Dinge mal anschauen
Freue mich natürlich über jedes weiter post die Hilfe geben
könnten.
Danke
 

Landei

Top Contributor
Ich habe mal was zum Auslesen unserer WS geschrieben. Unser altes Bea-Toolkit benennt die Parameter allerdings sehr übersichtlich mit "string","string0","string1" usw., das müsste man dann entprechend ändern:
Code:
import java.net.*;
import java.io.*;

import java.util.List;
import java.util.Arrays;

public class WebServiceCaller {

  private static final String callURL =
      "http://%s/Web-Services/%s";
  private static final String envelope =
      "<?xml version='1.0'?>" +
      "<env:Envelope  xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'" +
      "  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
      "  xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'" +
      "  xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
      " <env:Header/>" +
      " <env:Body   env:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>" +
      "  <m:%s xmlns:m='http://%s'>%s</m:%1$s>" +
      " </env:Body>" +
      "</env:Envelope>";

  private WebServiceCaller() {
    //do not instantiate
  }
  /*
     Example:
     ip = 10.211.10.21:6202
     ws = InventoryWebService
     wsMethod = getInventoryTag
     wsClass = inventorytag.wgs.ws.guardian.com
     content = List{D1814898, 00000000.00B2.17, en, en_US, en_US, en_US}
   <string xsi:type='xsd:string'>
  */
  public static String call(String ip, String ws, String wsMethod, String wsClass, List<String> content)
      throws Exception {
      StringBuilder sb = new StringBuilder();
      String tag = "string";
      for (int i = 0; i < content.size(); i++) {
        sb.append("<").append(tag).append(" xsi:type='xsd:string'>").append(content.get(i))
            .append("</").append(tag).append(">");
        tag = "string" + i;
      }
      URL url = new URL(String.format(callURL, ip, ws));
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setRequestProperty("Content-Type",
                              "application/soap+xml; charset=utf-8");
      conn.setDoOutput(true);
      OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
      String env = String.format(envelope, wsMethod, wsClass, sb);
      wr.write(env);
      wr.flush();
      sb.setLength(0);
      if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.
            getInputStream()));
        for (String line = rd.readLine(); line != null; line = rd.readLine()) {
          sb.append(line);
        }
        wr.close();
        rd.close();
        return sb.toString();
      } else {
        throw new Exception("ErrorCode: " + conn.getResponseCode() + "\nURL: " + url +
                            "\nEnvelope: \n" + env);
      }
  }

  //for testing
  public static void main(String... args) throws Exception {
    List<String> content = Arrays.asList(
       new String[]{"D1814898", "00000000.00B2.17", "en", "en_US", "en_US", "en_US"});
    System.out.println(call("666.666.666.666:6666", "InventoryTagWebService", "getInventoryTag",
                            "inventorytag.meinefirma.com", content));
  }

}
 
G

Gast

Gast
Apache Axis2 ist zwar schön und gut, aber in Java 6 hat mittlerweile Jax-WS einzug gehalten.

Schritt 1. Man erstellt eine Fassade.
Eine Klasse die Methoden dieses Services bereitstellt.
Code:
public class MathService{
public int add(int z1,int z2){
//Hier könnte auch der Aufruf deines "bestimmten Programms" stehen
return z1 + z2:
}
}

Schritt 2.
Das ganze wird mit Annotations versehen
Code:
@WebService
public class MathService{
@WebMethod
public int add(int z1,int z2){
//Hier könnte auch der Aufruf deines "bestimmten Programms" stehen
return z1 + z2:
}
}

Schritt 3. Das Deployment
Code:
main(String[] args){
Endpoint endpoint = Endpoint.publish("http://localhost:1234/services",new MathService());
}

Die Wsdl sollte dann unter http://localhost:1234/services?wsdl verfügbar sein.
 
P

primeTimeBob

Gast
Also sehe ich das jetzt richtig, dass zuerst einmal das Programm, zudem ich die Schnittstelle die über SOAP verfügbar
gestellt werden soll, analysieren muss und dann ein Java Programm dazu schreiben muss und
man dann mit XML die ganze Sache in netz verfügbarstellen kann oder habe ich jetzt was falsch verstanden??
 
P

primeTimeBob

Gast
Ach noch was @gast

Was genau ist den bei dir mit z1 und z2 gemeint??
danke
 
P

primeTimeBob

Gast
Ach und kann ich jetzt das ganze in Eclipse programmieren??
 
P

primeTimeBob

Gast
gibt es den ein gutes Tutorial wo sowas mit Eclipse erklärt wird??
 
P

primeTimeBob

Gast
Also ich versuche jetzt mal genau zu erklären was ich verstanden habe und was für fragen ich noch habe. bitte verbessert mich wenn ich was
falsch sehe.

Also ich soll eine Schnittstelle für ein Programm entwickeln das über einen WebService (SAOP) zur verfügung
gestellt werden soll.

Also muss ich dafür irgendwas über das Programm wissen, wenn ja was genau?

Ich brauche doch jetzt nichts anderes außer Eclipse und ein paar addons dafür, um darin ein dynamic web project zu
entwickeln.
Oder brauche ich noch etwas dazu.

Ich habe mir zwar schon so einiges darüber durchgelesen, aber es steht viel über XML da usw.
Aber was genau brauche ich denn nun und wie sollte ich einfacherhalber anfangen?ß

Danke

mfg primtimebob
 
H

hoonix

Gast
Abend,


ich habe nun etliche Foren durchsucht und denke dass meie ne Frage hier am besten rein passen wird.

Ich bin dabei einen Client für einen Webservice zu schreiben der eine Authentfizierung mittel username und password im soap header verlangt.
Nun habe ich mittels wsimport die .class files importiert und kann den Service Aufrufen, jedoch bekomme ich den Error 401 da die Authentifizierung nicht stimmt.

Wie kann ich nun den Usernametoken während mittels JavaCode setzten?

Bin über jede Anregung dankbar.

LG
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
D Datenübertragung über serielle Schnittstelle Allgemeine Java-Themen 4
V gezielte Datenbankeinträge über JDBC schnittstelle Allgemeine Java-Themen 10
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
Tarrew OpenAPI Schnittstelle - Mehrere Kunden mit unterschiedlichen Zugriffsrechten Allgemeine Java-Themen 2
B Schnittstelle zwischen MySQL und Apache Allgemeine Java-Themen 8
Meeresgott Best Practice Mini REST-Schnittstelle Allgemeine Java-Themen 4
stroggi Serielle Schnittstelle (jssc) - Flush benötigt? Allgemeine Java-Themen 2
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
T Input und Outputstream , serielle Schnittstelle Allgemeine Java-Themen 1
M Schnittstelle Datanorm Allgemeine Java-Themen 2
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
I Java - perfekte Schnittstelle für Hacker? Allgemeine Java-Themen 8
M Java-Pawn Schnittstelle ? Allgemeine Java-Themen 0
S Threads Serielle Schnittstelle mit Listener / Aufrufendes GUI Allgemeine Java-Themen 4
L COM Schnittstelle in Java programmieren Allgemeine Java-Themen 4
T Schnittstelle zu Bash?! Allgemeine Java-Themen 2
D Aufgabe: Schnittstelle und Proxy implementieren Allgemeine Java-Themen 2
H Interface Generische Schnittstelle (rekusiv) Allgemeine Java-Themen 2
M Serielle Schnittstelle ansteuern - mit Processing Bibliothek Allgemeine Java-Themen 4
B Schnittstelle von Facebook zu Java(Eclipse) für meine Internetseite Allgemeine Java-Themen 20
U Realisierung einer "Plugin-Schnittstelle": Allgemeine Java-Themen 12
I Serielle Schnittstelle Allgemeine Java-Themen 5
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
M Schnittstelle für durchgereichte Interaktionen in Komponentenhierarchie? Allgemeine Java-Themen 3
P Auslesen serieller Schnittstelle - umwandeln von byteArray Allgemeine Java-Themen 3
N Serielle Schnittstelle / COM-Port auslesen und die empfangenen Daten verarbeiten Allgemeine Java-Themen 1
O Zugriff auf Serielle Schnittstelle - Keine Ports gefunden. Allgemeine Java-Themen 8
S Problem mit serieller Schnittstelle Allgemeine Java-Themen 10
M Zugriff auf Parallel-Schnittstelle Allgemeine Java-Themen 2
MQue Schnittstelle programmieren Allgemeine Java-Themen 2
H lpt1 schnittstelle Allgemeine Java-Themen 6
M Schnittstelle java.util.Set Allgemeine Java-Themen 9
G Kommunikation mit der seriellen Schnittstelle Allgemeine Java-Themen 6
G serielle Schnittstelle einlesen Allgemeine Java-Themen 13
M Paralle Schnittstelle ansprechen Allgemeine Java-Themen 2
P TCPIP Schnittstelle Allgemeine Java-Themen 2
D Daten aus einer Seriellen Schnittstelle empfangen Allgemeine Java-Themen 22
G Problemme mit serielle Schnittstelle Allgemeine Java-Themen 9
MQue serielle Schnittstelle Allgemeine Java-Themen 2
E serielle Schnittstelle Allgemeine Java-Themen 6
N Serielle Schnittstelle ansprechen Allgemeine Java-Themen 9
D HTML Schnittstelle Allgemeine Java-Themen 4
J serielle Schnittstelle unter Linux Allgemeine Java-Themen 3
T parallele Schnittstelle auslesen Allgemeine Java-Themen 5
S Problem mit Ansteuerung von serieller Schnittstelle Allgemeine Java-Themen 7
Q Schnittstelle/Abstrakte Klasse schreibt Annotation vor? Allgemeine Java-Themen 4
W Zugriff auf lokale serielle Schnittstelle via Applet Allgemeine Java-Themen 3
T Java Schnittstelle Active Directory Allgemeine Java-Themen 5
Q Typecast zwischen Klassen mit implementierter Schnittstelle Allgemeine Java-Themen 4
M RS232 Schnittstelle ansteuern (Floppy durch Laptop ersetzen) Allgemeine Java-Themen 2
Z java->schnittstelle->excel Allgemeine Java-Themen 2
A Serielle Schnittstelle | Barcodescan | ohne Tastatur Allgemeine Java-Themen 11
H javax.comm und Parallele Schnittstelle (PIN für PIN) Allgemeine Java-Themen 7
X Java Schnittstelle zu AIML Allgemeine Java-Themen 2
S String an COM-Schnittstelle senden Allgemeine Java-Themen 6
D Schnittstelle zwischen zwei Klassen? Allgemeine Java-Themen 2
J PS/2-Schnittstelle ansprechen Allgemeine Java-Themen 7
Y Zugriff auf Com-Schnittstelle Allgemeine Java-Themen 5
S Abhören der com-Schnittstelle Allgemeine Java-Themen 3
H Zugriff auf parallele Schnittstelle Allgemeine Java-Themen 4
G Zugriff auf serielle Schnittstelle mit Java 1.5.0 Allgemeine Java-Themen 11
C Implementieren einer Schnittstelle (Interface), Ausnahmen Allgemeine Java-Themen 7
J serielle schnittstelle unter linux Allgemeine Java-Themen 3
kodela Datenübergabe über Buttons Allgemeine Java-Themen 8
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
A ByteArray über Socket Allgemeine Java-Themen 3
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
I 2D-Grafik Vektor-Grafik über die Zwischenablage nach Adobe Illustrator transferieren Allgemeine Java-Themen 8
TheSkyRider Methode über DataInputStream "auslösen" Allgemeine Java-Themen 6
I OpenPDF erzeugt riesige PDFs, wenn Grafiken über PdfGraphics2D#drawImage gezeichnet werden Allgemeine Java-Themen 1
T Etikettendrucker über TCP-IP Allgemeine Java-Themen 1
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
B Liste ändern während Iteration über Diese? Allgemeine Java-Themen 16
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
L Aufwandsabschätzung: Android-App Aufnahmefunktion (foto) und zweiter Ebene über dem Foto (teiltransparent) Allgemeine Java-Themen 6
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
M Keine weitere Eingabe in der Main möglich. Eventueller Ansatz über while. Allgemeine Java-Themen 8
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
W Variablenübergabe über mehrere Klassen Allgemeine Java-Themen 4
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Threads über Kommandozeile Allgemeine Java-Themen 5
david19 Software AE über Domain laufen lassen Allgemeine Java-Themen 0
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
K Auf Dateiverzeichnis extern zugreifen (evtl über XML??) Allgemeine Java-Themen 22
C VisualVM oder Jconsole über Jolokia-Proxy Allgemeine Java-Themen 0
G USB-Pins über Java ansteuern Allgemeine Java-Themen 8
Ernesto95 Best Practice Localization über ResourceBundle Allgemeine Java-Themen 6
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
C Auslesen auslösen über Button-Click Allgemeine Java-Themen 8
M Fragen beantworten über Textfeldeingabe Allgemeine Java-Themen 5
AssELAss Best Practice Checksumme über jede Spalte zweier Tabellen und vergleichen Allgemeine Java-Themen 3
T Strings über Bluetooth zwischen PC,µc oder Samrtphone senden und empfangen Allgemeine Java-Themen 0
F Try/catch über ganze Klasse Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben