Konfiguration vom SOAP-Envelope

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von waltraud28, 04.05.2009.

  1. #1 waltraud28, 04.05.2009
    waltraud28

    waltraud28 Grünschnabel

    Dabei seit:
    12.12.2006
    Beiträge:
    6
    Zustimmungen:
    0
    Hallo,
    ich verwende für einen SOAP-Webservice das Perl Package Soap::Lite 060a-26.

    Mein aktueller Soap-Request sieht so aus:

    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

    <SOAP-ENV:Body>
    <namesp1rocessSyncRequest xmlns:namesp1="http://server.webservice.gws.common.tsystems.com/">
    <credentials xsi:type="xsd:string">gwsdbip</credentials>
    <systemId xsi:type="xsd:string">ODBIP</systemId>

    <requestAsXml xsi:type="xsd:string">
    &amp;amp;lt;gws:ODBIP_INFO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:gws="http://www.t-systems.com/gws-odbip"
    xsi:schemaLocation="http://kepler.dts.telekom.de/spims/WEB-INF/interfaces-ipls-
    rot/gws-odbip.xsd"&amp;gt;

    &amp;lt;GET_IP_ADDRESS_RANGE&amp;gt;
    &amp;lt;TECHNICAL_ID&amp;gt;SIMULATION&amp;lt;/TECHNICAL_ID&amp;gt;
    &amp;lt;BUSINESS_CASE&amp;gt;CANCEL&amp;lt;/BUSINESS_CASE&amp;gt;
    &amp;lt;PRODUCT&amp;gt;VPN-Service&amp;lt;/PRODUCT&amp;gt;
    &amp;lt;VRF_NAME&amp;gt;221171&amp;lt;/VRF_NAME&amp;gt;
    &amp;lt;IPLS_POOL_TYPE&amp;gt;WAN&amp;lt;/IPLS_POOL_TYPE&amp;gt;
    &amp;lt;DEVICE_NAME&amp;gt;de-rve-heus-ce-01&amp;lt;/DEVICE_NAME&amp;gt;
    &amp;lt;FIRST_IP_ADDRESS&amp;gt;10.207.128.128&amp ;lt;/FIRST_IP_ADDRESS&amp;gt;
    &amp;lt;/GET_IP_ADDRESS_RANGE&amp;gt;

    &amp;amp;lt;/gws:ODBIP_INFO&amp;gt;

    </requestAsXml>

    <requestId xsi:type="xsd:int">123456789</requestId>
    </namesp1rocessSyncRequest>
    </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>

    Innerhalb des Envelopes befindet sich als Attribut die Information SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

    Meine Frage ist, ob und wenn ja ich Perl-Soap::Lite so konfigurieren kann, daß die obige encodingStyle-Information nicht mit angegeben wird oder der Wert auf "" gesetzt wird !!??

    Kann mir da jemand weiterhelfen ?

    Schöne Grüße
    waltraud28
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 supersucker, 05.05.2009
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Hast du einen triftigen Grund dafür?

    Den Encoding-Style wegzulassen ist bad practice.....
     
  4. #3 slackfan, 05.05.2009
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Hallo,


    ich habe zwar keine Ahnung von Soap, aber das XML Schema besagt, dass encodingStyle vom Typ anyURI sein muss. Dieser muss damit den RFCs 2396 und/oder 2732 entsprechen. Den Attributwert leer zu lassen, wäre also falsch und unsinnig sowieso.

    Darf ich fragen, wieso ein Attribut, das definiert, nach welchem Schema die beinhalteten Daten kodiert sind, nicht obligatorisch ist, ist das so "gewachsen"?

    Code:
    <namesp1rocessSyncRequest xmlns:namesp1="http://server.webservice.gws.common.tsystems.com/" />
    Schaut für mich aus wie ein Typo. Sollte das nicht <namesp1:processSyncRequest /> lauten?


    cu
     
  5. #4 waltraud28, 05.05.2009
    waltraud28

    waltraud28 Grünschnabel

    Dabei seit:
    12.12.2006
    Beiträge:
    6
    Zustimmungen:
    0
    Hallo,

    ich bekomme als SOAP-Response die Fehlermeldung "Reference not allowed in Prolog".

    Die Verantwortlichen für den SOAP-Server meinen, daß diese Fehlermeldung im Zusammenhang mit dem encodingStyle steht.

    Jetzt suche ich nach einer Möglichkeit, wie ich selbst einen encodingStyle definieren kann. Es ist nachvollziehbar, daß es eigentlich Unsinn ist, einen encodingStyle wegzulassen, aber ich habe da einfach gedacht, wie ich diese Information aus der XML-Struktur bekomme.

    Schöne Grüße
    waltraud28
     
  6. #5 slackfan, 05.05.2009
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 waltraud28, 05.05.2009
    waltraud28

    waltraud28 Grünschnabel

    Dabei seit:
    12.12.2006
    Beiträge:
    6
    Zustimmungen:
    0
    nee, leider nicht.

    Im eigentlichen Perl-Skript sieht es folgendermaßen aus:

    my $value = "
    &lt;gws:ODBIP_INFO&gt;
    &lt;GET_IP_ADDRESS_RANGE&gt;
    &lt;TECHNICAL_ID&gt;SIMULATION&lt;/TECHNICAL_ID&gt;
    &lt;BUSINESS_CASE&gt;CANCEL&lt;/BUSINESS_CASE&gt;
    &lt;PRODUCT&gt;VPN-Service&lt;/PRODUCT&gt;
    &lt;VRF_NAME&gt;221171&lt;/VRF_NAME&gt;
    &lt;IPLS_POOL_TYPE&gt;WAN&lt;/IPLS_POOL_TYPE&gt;
    &lt;DEVICE_NAME&gt;de-rve-heus-ce-01&lt;/DEVICE_NAME&gt;
    &lt;FIRST_IP_ADDRESS&gt;10.207.128.128&lt;/FIRST_IP_ADDRESS&gt;
    &lt;/GET_IP_ADDRESS_RANGE&gt;
    &lt;/gws:ODBIP_INFO&gt;
    ";

    my $func_call = $soap->processSyncRequest(
    SOAP::Data->name('credentials' => 'gws:odbip')->type('string'),
    SOAP::Data->name('systemId' => 'ODBIP')->type('string'),
    SOAP::Data->name('requestAsXml' => $value)->attr(
    {
    'xmlns:xsi'=>"http://www.w3.org/2001/XMLSchema-instance",
    'xmlns:gws'=>"http://www.t-systems.com/gws-odbip",
    'xsi:schemaLocation'=>"http://kepler.dts.telekom.de/spims/WEB-INF/xsd/gws-odbip.xsd"
    }
    )->type('string'),
    SOAP::Data->name('requestId' => '123456789')->type('int'),
    );

    Der Fehler bezieht sich immer auf requestAsXml. Ich vermute, daß trotz der Typ-Angabe "string" der Webservice das requestAsXml-Tag als eigenes XML-Objekt betrachtet, da sich die Fehlerangabe immer auf dieses Tag bezieht.

    Es handelt sich dabei um einen Java-basierenden Webservice.
     
  9. #7 slackfan, 05.05.2009
    Zuletzt bearbeitet: 05.05.2009
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Hallo,

    setz das Zeug mal bitte in code-Tags. Das ist sonst sehr schwer zu lesen.
    Vielleicht verstehe ich da ja etwas falsch, aber sollten die Namepsaces xsi und gws aus
    Code:
    SOAP::Data->name('requestAsXml' => $value)->attr(
        {
        'xmlns:xsi'=>"http://www.w3.org/2001/XMLSchema-instance",
        'xmlns:gws'=>"http://www.t-systems.com/gws-odbip",
        'xsi:schemaLocation'=>"http://kepler.dts.telekom.de/spims/WEB-INF/xsd/gws-odbip.xsd"
        }
    )->type('string'),
    
    nicht direkt in $value stehen? Wenn der Code wirklich die Ausgabe aus deinem ersten Post erzeugt, würden die Inhalte von $value ja in der Tat schon vor dem verschicken durch Perl-SOAP::lite als XML-Objekt interpretiert, weil dort ja die Namespaces korrekt zugewiesen sind. $value sollte nach meinem Verständnis von XML ja eigentlich unangetastet bleiben.
    Code:
    my $value = "
    &lt;gws:ODBIP_INFO&amp;xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"&amp;xmlns:gws="http://www.t-systems.com/gws-odbip"&amp;xsi:schemaLocation="http://kepler.dts.telekom.de/spims/WEB-INF/xsd/gws-odbip.xsd"&gt;
     &lt;GET_IP_ADDRESS_RANGE&gt;
      &lt;TECHNICAL_ID&gt;SIMULATION&lt;/TECHNICAL_ID&gt;
      &lt;BUSINESS_CASE&gt;CANCEL&lt;/BUSINESS_CASE&gt;
      &lt;PRODUCT&gt;VPN-Service&lt;/PRODUCT&gt;
      &lt;VRF_NAME&gt;221171&lt;/VRF_NAME&gt;
      &lt;IPLS_POOL_TYPE&gt;WAN&lt;/IPLS_POOL_TYPE&gt;
      &lt;DEVICE_NAME&gt;de-rve-heus-ce-01&lt;/DEVICE_NAME&gt;
      &lt;FIRST_IP_ADDRESS&gt;10.207.128.128&lt;/FIRST_IP_ADDRESS&gt;
     &lt;/GET_IP_ADDRESS_RANGE&gt;
    &lt;/gws:ODBIP_INFO&gt;
    ";
    
    SOAP::Data->name('requestAsXml' => $value)->type('string'),
    
    Kann aber auch Käse sein.
     
Thema:

Konfiguration vom SOAP-Envelope

Die Seite wird geladen...

Konfiguration vom SOAP-Envelope - Ähnliche Themen

  1. Artikel: Calibre - Teil 1: Installation und Erstkonfiguration

    Artikel: Calibre - Teil 1: Installation und Erstkonfiguration: Der erste Teil des Calibre-Workshops beschreibt die Installation und Erstkonfiguration der freien E-Book-Verwaltung. Weiterlesen...
  2. Konfigurationsmanagement: Chef Server nur noch Open Source

    Konfigurationsmanagement: Chef Server nur noch Open Source: Die Chef Software, Inc. hat bekannt gegeben, dass der Chef-Server von nun an nur noch als Open Source-Variante erhältlich sein wird. Mit Chef...
  3. FTP-Server ohne Konfigurationsdatei,der mit einer Zeile gestartet werden kann,gesucht

    FTP-Server ohne Konfigurationsdatei,der mit einer Zeile gestartet werden kann,gesucht: Hey Leute, ich möchte, wenn ich mich in einem Netzwerk mit einem anderen Rechner befinde, ohne Konfiguration ganz schnell Dateien austauschen...
  4. Samba Konfiguration

    Samba Konfiguration: Hallo zusammen, ich wollte auf der Arbeite ein wenig mit Samba spielen. habe also auf meinem windows 7 64 bit rechner den vmware player...
  5. systemmeldungen als emails + postfixkonfiguration - alles nur lokal

    systemmeldungen als emails + postfixkonfiguration - alles nur lokal: Hallo da ich jetzt dabei bin, Statusmeldungen von systemprogrammen (anacron, logwatch, rkhunter lokal als email zu verschicken ud zu speichern...