Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Webservice Formular-Problem

Empfohlene Antworten

Veröffentlicht

Hi ,

Ich habe das Problem, dass ich einen Webservice habe der einem Formular erlaubt Daten aus ner Datenbank zu ziehen und als Options in einem Drop-Down Feld bereitstellt.

Dies funktioniert auch.

Allerdings wenn ich das Formular abschicke, bricht er mit einen Soap-Error "Bad Request" ab.

Wahrscheinlich muss ich das Request im wsdl-Dokument erlauben, weis aber nicht wie.

Hier mein wsdl-Dokument :

<?xml version ="1.0" encoding ="UTF-8" ?>


<definitions name="webservice"

 targetNamespace="http://localhost/webservice"

 xmlns:tns=" http://localhost/webservice"

 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

 xmlns:xsd="http://www.w3.org/2001/XMLSchema"

 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"

 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

 xmlns="http://schemas.xmlsoap.org/wsdl/">


 <message name='getResponse'>

    <part name='return' type='xsd:String'/>

  </message>

  <message name='addRequest'>

    <part name='insert' type='xsd:String'/>

  </message>



  <portType name='webservicePortType'>

    <operation name='getOptions'>

      <input message='tns:addRequest'/>

      <output message='tns:getResponse'/>

    </operation>

  </portType>


  <binding name="webserviceBinding" type="tns:webservicePortType">


	  <soap:binding

	   style="rpc"

	   transport="http://schemas.xmlsoap.org/soap/http"/>


	  <operation name="getOptions">


	   <soap:operation soapAction="urn:webservice#getOptions"/>

		   <output>

			    <soap:body use="literal"/>

		   </output>

		   <input>

			    <soap:body use="literal"/>

		   </input>

	  </operation>


 </binding>


<service name="webserviceservice">

	<port name="webservicePort" binding="webserviceBinding">

		<soap:address location="http://127.0.0.1/Webserver/aufgabe/common/Server.php"/>

		<soap:address location="http://127.0.0.1/Webserver/aufgabe/administration/client.php"/>

	</port>

</service>


</definitions>

Wie schaut denn rein Request aus den du das Formular versendest?

Deine WSDL bietet dir 2 Methoden an, eine getResponse Methode mit einem String als Rückgabe und eine Methode addRequest mit einen String als Parameter. Eine WSDL ist erstmal nichts andere als eine formale Schnittstellenbeschreibung da brauchst du keinen Request erlauben. Denn du hast ja schon eine add Methode die etwas entgegen nimmt. Ich denke eher das deine Nachricht keine SOAP Nachricht ist sondern irgendetwas anderes. Deshalb zeige mal deinen Code für das Formular bzw. den Code um die Stelle wo es zu dem Bad Request kommt.

  • 1 Monat später...
  • Autor

Hi,

danke fürd den Hinweis, ich habe die letzte Zeit nicht daran weiter gearbeitet(Fortbildung).

Ich wollte (unerfahrenerweise) das Formular mit Daten via Webservice füttern, eigentlich total sinnlos( mein mein Ausbilder)

Nun ich habe jetzt trotzdem eine Frage zu webservices( ein weiterer gescheiterter Versuch), giebt es ausführliche gute Bücher über Webservices?

Ich werde webservices immer wieder brauchen und die Tutorials sind irgendwie immer anders, manch webservice hat viele Einstellungen, manche nur wenig etc.

Für mich ist ein Webservice noch nicht (be)greifbar, darum bräuchte ich Bücher wie "Webservice für Dummies".

gegen ein umfangreiches tutorial hätte ich auch nichts einzuwenden.

p.s. ich muss die webservices immer selbst zusammenstellen, oder vorhandene für meine Methoden erweitern

Bei Büchern kommt es drauf an ob du es eher allgemeiner haben willst oder auf ein spezielle Webservice Framework dich beschränken willst.

Wenn es allgemeiner sein soll da wäre das Buch "Web Service Contract Design and Versioning for SOA" vielleicht etwas für dich.

Ich fand das Buch "Java Web Services mit Apache Axis 2" auch sehr gut. Es ist aber eher auf Java ausgelegt und geht auf viele Details des Axis Frameworks ein wobei viele Teile davon im JEE Umfeld dann doch allgemein Gültig sind.

SOAP ist nur ein spezielles Schema das du in einer wsdl benutzt. Es bringt dir nicht viel das "auswendig zu lernen" falls du es doch möchtest kannst du hier SOAP Specifications mal anfangen zu lernen. Du musst um mit Webservices zu arbeiten nicht das komplette Metamodell von SOAP auswendig kennen. Es ist sicherlich hilfreich eine wsdl auch so lesen zu können aber du musst nicht jedes Attribut auswendig kennen. Denn du willst ja nicht anfangen das XML/ die WSDL selbst zu parsen sondern nutzt dafür ja bereits bestehendes Framework. Dazu musst du aber verstehen wir ein solches Framework bei parsen der Nachricht vorgeht wie z.B. Security Informationen nacheinander verarbeitet werden und wo du welche Information in deinem SOAP Request/ Response findest.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.