Web Service Objekt übertragen

T

Torain

Gast
Habe gerade gemerkt das ich das gestern ins falsche Forum gepostet habe:

Gleich noch eine winzige Frage, ich glaub nicht das es sich lohnt dafür einen neuen Thread aufzumachen:

ich habe noch einen kleinen webservice hinzugefügt der ein Containerobjekt liefern soll. Code in etwa so:

Container Klasse:
Java:
@WebService
@SOAPBinding(style=SOAPBinding.Style.RPC)
public class Containers {

 
 ....
 @WebMethod
 public Container getContainer(){
     return container;
 }
 ......
}


Das scheint er leider auch nicht zu mögen. Ich habe jetzt lange mit C# gearbeitet und dachte das auch in Java ein einfaches @XmlRootElement und serializable ausreichen würden um das Objekt Serialisierbar zu machen, aber scheinbar wohl doch nicht. Wenn ich die Methode im Client benutzen will bekomme ich:

Code:
Exception in thread "main" com.sun.xml.internal.ws.protocol.soap.MessageCreationException: Couldn't create SOAP message due to exception: XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,111]
Message: XML document structures must start and end within the same entity.
	at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:283)
	at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:180)
	at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83)
	at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:78)
	at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
	at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
	at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
	at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
	at com.sun.xml.internal.ws.client.Stub.process(Stub.java:211)
	at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:124)
	at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98)
	at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
	at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
	at $Proxy30.getUser(Unknown Source)
	at Main.main(Main.java:15)
Caused by: com.sun.xml.internal.ws.streaming.XMLStreamReaderException: XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,111]
Message: XML document structures must start and end within the same entity.
	at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.wrapException(XMLStreamReaderUtil.java:256)
	at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:84)
	at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.nextContent(XMLStreamReaderUtil.java:99)
	at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.nextElementContent(XMLStreamReaderUtil.java:89)
	at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:219)
	at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:292)
	at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:118)
	at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:278)
	... 14 more
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,111]
Message: XML document structures must start and end within the same entity.
	at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:594)
	at com.sun.xml.internal.ws.util.xml.XMLStreamReaderFilter.next(XMLStreamReaderFilter.java:81)
	at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:65)
	... 20 more
 
S

SlaterB

Gast
die ersten beiden Links zu einer Internet-Suche zur Fehlermeldung (immer selber machen!)
XML document structures must start and end within the same entity
java - SAXParseException: XML document structures must start and end within the same entity - Stack Overflow

sprechen von alten Versionen oder Einstellungen, mal StAX 1.2.0, mal CommonsHTTPSender für HTTP 1.1,

immer unschön, besonders wenn die Fehlermeldungen wenig dazu ausdrücken, aber man muss es nunmal berücksichtigen,
was kannst du dazu sagen, hast du bestimmte Libraries die du verwendest,
richtest du dich nach einem bestimmten Tutorial, funktioniert irgendeine Übertragung ohne 'Container' bereits?
 
T

Torain

Gast
Tag,

danke für die Antwort.

Die Meldungen bei google habe ich auch schon gefunden, leider haben sie mir wenig gebracht. Ich benutze keine speziellen Libraries auser eben die die schon Standardmäßig für webservices eingebunden sind. Übertraungen mit primitiven Datentypen funktionieren problemlos und in die anderen Richtung klappt es auch, also einen Container vom Client zum Webservice kann ich schicken nur vom Webservice zum Client kommt dieser Fehler.
 
T

Torain

Gast
Mit nur String geht es wenn ich @XmlElement hinzufüge. allerdings soll Container über einen EntityManager die Einträge einer Sql Datenbank enthalten und dann crashts immer noch.

Container geht also eigentlich mit
@Entity
@Table(name="test")
@XmlRoot
los

Das funktioniert auch problemlos und ich kann neue Einträge hinzufügen nur eben lesen will nicht.
 

Ähnliche Java Themen

Neue Themen


Oben