tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
1309
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    elro2k elro2k ist offline Rookie
    Registriert seit
    Nov 2007
    Beiträge
    5
    Hallo zusammen,

    Meine Situation:
    Ich würde gerne einen WebService in Java erstellen. Dieser WebService soll aber nur die ankommende Soap abfangen. Diese soll dann unverändert per Socket weitergeschickt werden.

    Meine Frage:
    Ist es möglich einen solchen WebService aufzubauen, welcher eine komplette Soap empfängt?

    Ich wäre euch für jede Hilfe oder Idee dankbar.
     

  2. #2
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Was ist denn die Soap? SOAP ist das Protokoll, nich irgendwas, was hin und her geschickt wird... http://de.wikipedia.org/wiki/SOAP

    REINHAUN!
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

  3. #3
    elro2k elro2k ist offline Rookie
    Registriert seit
    Nov 2007
    Beiträge
    5
    Wenn ich dich richtig verstehe kommt die SOAP gar nicht am Server an?
    Was kommt den am Server an? :-D
    Was macht ein WebService im Hintergrund?

    Gruß
     

  4. #4
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Zitat Zitat von elro2k Beitrag anzeigen
    Wenn ich dich richtig verstehe kommt die SOAP gar nicht am Server an?
    Nochmal, es gibt nicht "die SOAP". Lies doch bitte mal den Wikipediaartikel. Wenn das nicht klar ist, wird man dir nur wenig helfen können fürchte ich.

    Was kommt den am Server an? :-D
    XML Nachrichten bestehend aus Envelope und Payload.

    Was macht ein WebService im Hintergrund?
    Ich versteh die Frage nicht. Er macht eben das, was du implementierst.

    Gruß
    Ollie
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

  5. #5
    elro2k elro2k ist offline Rookie
    Registriert seit
    Nov 2007
    Beiträge
    5
    Mal ein bisschen konkreter anhand eines Beispieles:

    Das Beispiel ist von http://www.torsten-horn.de/techdocs/soap.htm:

    Wenn dieses meine SOAP-Request ist:

    POST /perl/soaplite.cgi HTTP/1.0
    Host: services.xmethods.net:80
    Content-Type: text/xml; charset=utf-8
    Content-Length: 546
    SOAPAction: ""

    <?xml version='1.0' encoding='UTF-8'?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SOAP-ENV:Body>
    <ns1:BabelFish xmlns:ns1="urn:xmethodsBabelFish"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <translationmode xsi:type="xsd:string">de_en</translationmode>
    <sourcedata xsi:type="xsd:string">Hallo Welt, Guten Tag</sourcedata>
    </ns1:BabelFish>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

    Dann möchte ich folgendes als Server in meinem Java Programm empfangen:

    <SOAP-ENV:Body>
    <ns1:BabelFish xmlns:ns1="urn:xmethodsBabelFish"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <translationmode xsi:type="xsd:string">de_en</translationmode>
    <sourcedata xsi:type="xsd:string">Hallo Welt, Guten Tag</sourcedata>
    </ns1:BabelFish>
    </SOAP-ENV:Body>
     

  6. #6
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    wie (mit welchem Framework, SWS, AXIS 1/2, JAX-WS, CXF, "von Hand" via HTTP Post...?) sprinchst du denn deinen Webservice an?

    Je nachdem ergeben sich unterschiedliche Möglichkeiten wie man die SOAP Response abfangen kann. Um hier aber nicht alle Aufzählen zu müssen wäre es schon sehr hilfreich zu wissen wie du die SOAP Calls machst.

    Prinzipiell geht dass dann je nach Framework über sowas wie einen Interceptor / Handler / Proxy der an entsprechender Stelle der Respone Behandlung eingehängt wird bzw. im Falle des Proxies den Request stellvertretend für den Service empfängt und den Aufruf an das eigentliche Ziel (den Webservice Endpoint) weitergibt. Kommt dann die Antwort zurück wird diese vom PROXY empfangen. Dieser kann dann die Antwort weiterleiten / dumpen / ignorieren, what ever.

    Weiterhin ist hier auch beschrieben, wie man mit AXIS Clients SOAP Messages abfangen kann:
    http://www.torsten-horn.de/techdocs/soap.htm

    Übirgens nicht wundern, wenn das babelfish Webservice Beispiel nicht funktioniert. Der Service wurde mittlerweile deaktiviert.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  7. #7
    elro2k elro2k ist offline Rookie
    Registriert seit
    Nov 2007
    Beiträge
    5
    Hallo,

    erst einmal Vielen Dank für deine Antwort.

    Aber, mir geht es nicht darum eine SOAP Response abzufangen, sondern die SOAP-Request. Ich will einen WebService Server schreiben. Dieser soll eine ähnliche Funktion haben, wie du beschrieben hast, nur auf der anderen Seite(Server-Seite). Ein Händler(WebService Server), welcher die SOAP-Request vom Client abfängt und weiterleitet.

    Beispielablauf:
    1) SOAP -Request wird von Client Seite abgeschickt
    2) SOAP- Request soll von meinem WebService Händler als XML(komplette SOAP-Request) empfangen werden
    3) Mein Händlerprogramm leitet die SOAP-Response per Socket an einen anderen Server weiter
    4) Ich kriege eine Antwort über eine Socket Verbindung in welcher die SOAP-Response steht.
    5) Diese SOAP Response leite ich weiter an den Client welcher den WebService aufgerufen hat.

    Es ist ein merkürdiges vorhaben, aber es ist eins
    Ich hoffe du kannst mit helfen.

    Gruß elro
     

  8. #8
    slowfly slowfly ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    40
    Ist es möglich einen solchen WebService aufzubauen, welcher eine komplette Soap empfängt?
    Ja, ist es. Einfach Code anhand des WSDLs generierung und Implementierung dazu schreiben, dem Client die URL mitteilen.

    gruss
    slowfly
     

  9. #9
    danielandross danielandross ist offline Mitglied Gold
    Registriert seit
    May 2006
    Beiträge
    110
    Hallo,
    ich möchte ähnlich vorgehen. Nur ist mein Hintergrund, das Debugging:
    Ich habe nämlich einen sehr einfachen Java Webservice (erstmal zu testzwecken) geschrieben. Hier will ich es schaffen, dass ich einen eigene Klasse übergeben kann (bzw ein Objekt einer eigenen Klasse). Die Klasse habe ich mit den XML Annotationen (XMLAccessortype und XMLType) ausgestattet, sodass diese beim veröffentlichen mittels Enpoint korrekt als xsd angelegt werden, die mit der wsdl-datei verknüpft wird.

    Soweit so gut. Das Problem ist jedoch, dass der Client kein Java Client ist sondern der BPMS von intalio. Wenn ich hier die wsdl importiere und werte demenstsprechend mappe, wird der Webservice NICHT aufgerufen. Ich vermute den Grund, dass die SOAP nicht in der korrekten form ankommt.

    Daher brauche ich einen Weg alle SOAP-Nachrichten am Webservice-Rechner abfangen zu können um mir diese mal anzuschauen.
    Ich weiß nämlich nur, dass intalio irgendwas verschickt und dass nicht das richtige ankommt.

    Könnt ihr mir da weiterhelfen?
     

  10. #10
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    WebServices sind im Allgmeinen plain XML über HTTP. D.h. wenn du mit nem HTTP Monitor die Requests monitorst, siehst du genau was über die Leitung geht.

    Gruß
    Ollie
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

Ähnliche Themen

  1. SOAP-Webservice mit PHP5 : no xml?
    Von edelmeier im Forum PHP
    Antworten: 3
    Letzter Beitrag: 10.12.08, 23:28
  2. SOAP Webservice Authentifizierung
    Von norti im Forum PHP
    Antworten: 0
    Letzter Beitrag: 07.12.08, 02:31
  3. Soap Webservice Timeout
    Von BillaBong im Forum PHP
    Antworten: 0
    Letzter Beitrag: 16.09.08, 15:32
  4. SOAP Webservice Problem
    Von scaerry im Forum PHP
    Antworten: 1
    Letzter Beitrag: 15.02.08, 15:11
  5. Datenbankanbindung und Webservice / Soap
    Von Hetthornie im Forum Java
    Antworten: 4
    Letzter Beitrag: 18.03.04, 13:22

Stichworte