WebService mit komplexen Objekten

  • Themenstarter Gelöschtes Mitglied 17093
  • Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gelöschtes Mitglied 17093

Gast
Hallo,
ich habe eine grundsätzliche Frage. Ich habe einen Web-Service erstellt, welcher komplexe Datentypen als Eingabeparameter bekommt, und auch komplexe Datentypen wieder zurückgibt.
Diese Datentypen bestehen aus verschachtelten, von mir selbst erstellen Objekten.
Wenn ich nun versuche den Web-Service zu deployen, erhalte ich eine IllegalArgumentException.

Ich habe jetzt ein wenig gegoogelt, und ab und an gelesen das sich komplexe Datentypen nur schwer über SOAP transportieren lassen, und jetzt weiss ich nicht weiter.
Gibt es möglichkeiten selbsterstellte komplexere Objektstruturen als Eingabe sowie Rückgabeparamter zu benutzen?
Ich hoffe ihr könnt mir helfen,

PS: Man muss dazu sagen, wenn ich beim Deployen die Methoden im Webservice auskommentiere, welche komplexe Datentypen beinhalten - kommt es zu keiner IllegalArgumentException, diese erscheint genau ab dem Moment, sobald verschachtelte Objekte benutzt werden sollten.

Vielen Dank im Vorraus,
Grüsse,
powerlinemk
 

musiKk

Top Contributor
Steht noch irgendwelcher Text in der Exception?
Ansonsten dürfte das vom verwendeten Webservice-Framework abhängen. Bei JAX-WS wird JAXB verwendet, da könntest Du Dir von Hand ein XML Schema bauen, welches Deinen Anforderungen gerecht wird. In der WebService-Annotation kann man ein WSDL-Dokument angeben und dort kannst Du das Schema referenzieren. Vielleicht gehts auch einfacher, aber sonst ist mir nichts bekannt...
 
G

Gelöschtes Mitglied 17093

Gast
Hallo,
die Fehlermeldung sieht so aus :

Exception in thread "main" java.lang.IllegalArgumentException: argument contains null
at com.sun.xml.internal.txw2.Document.writeValue(Document.java:125)
at com.sun.xml.internal.txw2.Document.writeValue(Document.java:129)
at com.sun.xml.internal.txw2.StartTag.addAttribute(StartTag.java:115)
at com.sun.xml.internal.txw2.ContainerElement._attribute(ContainerElement.java:298)
at com.sun.xml.internal.txw2.ContainerElement.addAttribute(ContainerElement.java:155)
at com.sun.xml.internal.txw2.ContainerElement.invoke(ContainerElement.java:129)
at $Proxy68.type(Unknown Source)
at com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator.generateSOAPMessages(WSDLGenerator.java:432)
at com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator.generateMessages(WSDLGenerator.java:400)
at com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator.generateDocument(WSDLGenerator.java:366)
at com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator.doGeneration(WSDLGenerator.java:262)
at com.sun.xml.internal.ws.server.EndpointFactory.generateWSDL(EndpointFactory.java:413)
at com.sun.xml.internal.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:182)
at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:420)
at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:439)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.createEndpoint(EndpointImpl.java:208)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:138)
at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:92)
at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
at epa2.WebService.StartWebService.main(StartWebService.java:13)

Dann würde ich noch gerne wissen, wie das mit dem Referenzieren genau funktionieren soll? Gibt es da vielleicht ein Tutorial oder ähnliches?
Vielen Dank im Vorraus,
Grüsse,
powerline
 

musiKk

Top Contributor
Hm. Jemand, der damit mehr Erfahrung hat, kann dazu sicher schon was sagen. Ich bräuchte wohl etwas Code; z. B. wie die komplexe Datenstruktur aussieht, mit der der Deploy fehlschlägt.
 

romzac

Mitglied
Tja, das mit den komplexen Datenstruktturen ist so eine Sache.
Ich hatte damit auch einige Probs in meiner Diplomarbeit, bis ich mir das Buch "Java Web Services mit Apache Axis 2" zugelegt habe. In Kapitel 3 wird sowohl der automatische als auch manuelle Zugriff auf komplexe Strukturen beschrieben.
Daraus geht hervor, dass die ganzen Datenstrukturen zum Übertragen alle in einfache Strings serialisiert werden um sie in einer SAOP Message zu verpacken, und auf der Empfängerseite wieder deserialisert werden. Praktischerweise gibt es in der Axis API aber einige BeanUtil-Funktionen dafür.
Dieses Konzept setzt auch voraus, dass schon eine Stub von den Klassen, die transportiert werden sollen, auf der Empfänger & Sender Seite existieren. Dort wird jeweils dann ein neues lokales Objekt instanziert, dass nur mit den Attributen aus der geparsten SAOP Nachricht gefüllt wird. ich ahbe damals die Plugins von der Axis2 Seite für Eclipse verwendet, die beim Deployen der Web Anwendung auch einen Service Client mit erstellen, worin auch - wie mein Vorgänger schon sagt - die XML Beschreibung für die Datenstruktur enthalten ist.

Wenn noch interesse besteht, kann ich evtl. bis morgen abend mal in meine alten Trial&Error-Codes rein gucken. irgendso ein paar Beispiele aus dem Buch hatte ich glaube ich abgeschrieben, weiss abe rnciht ob ich die widerfinde, weil ich vor 6 Monaten den Rechner neu aufgesetzt habe...
 

raphaa

Mitglied
Hi,
bezüglich des Themas passt, glaube ich, meine Anfrage auch hier rein. Ich habe einen WebService zur kontrollierten und automatischen Softwareverteilung gebaut, muss jetzt aber noch die SoftwareUpdate (in Form eines JARs) auf den Weg zum Client schicken. Hat jemand eine Idee wie? Die Daten sind auf jeden Fall binär zu übertragen. Welchen Datantyp benutzt man für eine Übertragung von Binärdaten? Müssen die Codiert/Decodiert werden?
Gruß
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S AXIS2 Webservice: Umgang mit komplexen Datentypen SOA 5
L Probleme mit komplexen Datentypen in einen Webservice SOA 2
T Error beim Versuch, einen Webservice zu kontaktieren SOA 4
J SOA WebService JAX-WS Java-Klasse per wsimport generieren lassen SOA 3
K Webservice: 4 counts of IllegalAnnotationExceptions SOA 0
D Zertifikat Authentifizierung am Webservice SOA 0
P JBOSS 7 und Restful Webservice SOA 1
N WebService Ausgabe einer ArrayList SOA 2
N Web Services Client aus externen WebService erstellen SOA 4
I SOAP Webservice Methoden und Parameter auslesen SOA 3
F [WebService] Array von eigenen Objekten SOA 0
P SOAP Webservice mit HTTP Basic Authentifizierung SOA 1
M JAVA Webservice Währungsrechner DRINGEND Hilfe SOA 1
A Up-/ Download von Dateien zu WebService SOA 6
D WebService Technik - Aufwand Änderung des Application Server SOA 3
R Webservice Timeout Konfiguration SOA 3
D SOAP Webservice (SAP) SOA 3
MQue WebService Versionierung SOA 9
L [AXIS2] OutOfMemory Exception bei Übertragung von größerer Datei via Webservice SOA 3
A Funktion mit Map als WebService SOA 4
T Webservice serviceName im Handler ermitteln SOA 3
N Webservice Einbinden wsdl SOA 7
M Edit und Remove über Webservice SOA 3
F Client Problem gegen Webservice SOA 3
P Java Webservice mit JWS Bindingnamen customizen SOA 4
L wie ArrayList an Webservice geben? SOA 3
B Webservice Config / SoapStub: Best Practice SOA 3
S Objektübertragung Fehler über Webservice SOA 10
E Webservice durch Java ansprechen SOA 7
L Webservice HTTPS Netbeans SOA 2
G NullPointerException bei Parameterübergabe an Webservice mittels kSoap2 SOA 2
M Webservice per URL ansprechen SOA 14
M Webservice Client erstellen und XML Request senden SOA 3
T Verwendung von Eclipse Projekten im Axis2 Webservice SOA 8
S Webservice als "CronJob" SOA 4
M Webservice (JaxWS) extern verfügbar machen SOA 5
M Welches WebService Framework ist denn das beste FRAMEWORK? SOA 5
D Webservice fürs Internet sichtbar machen SOA 2
W WebService aus einer HTML-Seite SOA 9
T WebService innerhalb von Seam-Projekt, komplexe Datentypen SOA 6
N JAX-WS WebService und Tomcat 7 SOA 11
E Trennung von Daten und WebService und Wiederverwendung der Daten SOA 2
D Sicherheit bei REST-Webservice SOA 19
G WebService, was darf der Client alles sehen SOA 19
M Nutzen des Webservice AWSECommerceService SOA 1
G Webservice Contract first SOA 8
G WebService -> ServletFilter SOA 2
G WebService Concurrency SOA 19
M Fehler beim Veröffentlichen eines Webservice SOA 6
G WebService Types SOA 7
G OpenLigaDB Webservice Client SOA 4
G WebService WSDL SOA 3
A PHP WebService aus Java aufrufen SOA 2
R Proxy WebService erstellen SOA 3
G JPA/ Webservice: Passwort Feld einer Klasse fürs Lesen "verschleiern" SOA 10
G WebService mit wsdl erstellen SOA 4
P WebService SOA 6
H Webservice: BindingProvider SOA 6
D WebService DB abfrage SOA 4
mabe83 EJB Klassen für Webservice nutzen SOA 2
S Webservice-Client-Klasse gibt immer null zurück SOA 3
C Problem mit Java Webservice - SOAPBinding.Style - Wrapper class fehlt SOA 1
T Rest Webservice der 2 verschiedene XML Objekte(JaxB) entgegennimmt SOA 10
S Webservice, Vererbung und Netbeans SOA 3
E Lesen der kompletten SOAP als WebService Provider/Server SOA 4
T WebService Authentifizierung SOA 11
mabe83 Suche Hilfe zum Thema Webservice + EJB SOA 3
T WebService erstellen SOA 28
T Krankes Vorhaben: Von VB auf Java Webservice SOA 10
M Webservice RuntimeModelerException? SOA 5
G Webservice mit Java aufrufen SOA 2
G WebService: mehrere methoden mit demselben Namen SOA 4
T einfacher Webservice SOA 3
G Webservice im JBoss: runtime modeler error SOA 3
V webservice von aussen (webbrowser) ansprechen SOA 2
V Webservice, allgemeine Fragen SOA 9
G Alfresco - WebDav oder WebService SOA 2
0 Webservice nutzen (rpc/enc style) SOA 2
R XML verschicken mit Webservice Server Client SOA 2
R Webservice aufrufen mit SOAP Style.DOCUMENT ? SOA 5
G Webservice zugreifen SOA 6
G Deploy Apache CXF WebService mit Eclipse SOA 2
G Webservice mit JSON SOA 8
T Webservice über Tomcat loggen SOA 5
thE_29 WebService - JAXBElement - richtige Klasse? SOA 2
O brauche hilfe bei java/webservice geschichte SOA 29
M Webservice/ Axis/ Bea Weblogic Server 8.1 SOA 12
E Webservice konfigurieren SOA 2
Y Webservice erstellen SOA 4
F Tutorial zu WebService mit JBoss, Eclipse und Jax-ws? SOA 3
C Webservice im Unternehmen SOA 4
L webservice frage (eclipse/wtp, wsdl) SOA 12
U Webservice mit Axis, Hello World Beispiel SOA 2
J Frage zu Webservice SOA 3
L WebService TestClient Problem SOA 2

Ähnliche Java Themen

Neue Themen


Oben