# Webserviceaufruf verursacht eine Exception



## tklenin (10. Apr 2019)

Hallo Leute,
folgender Code wirft folgende Exception aus. Ich frage mich, was genau invalide ist. Das XML-Dokument kann es nicht sein, dass wird in allen Browsern anstandslos angezeigt. Andererseits ist es die Klasse XmlException, die die Exception verarbeitet. Was sonst könnte die Exception verursachen?
Exception:

```
DEBUG - Parse folgende Eingabedatei:D:\SVN\Schnittstellen\Ford_OWS\build\classes\config\owstrx2C576_07351919.xml
ERROR - null
org.apache.xmlbeans.XmlException: Element PutMessage@http://www.starstandards.org/webservices/2005/10/transport is not a valid ProcessMessage@http://www.starstandards.org/webservices/2005/10/transport document or a valid substitution.
    at org.apache.xmlbeans.impl.store.Locale.autoTypeDocument(Locale.java:322)
    at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1273)
    at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1257)
    at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
    at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:252)
    at org.starstandards.www.webservices._2005._10.transport.ProcessMessageDocument$Factory.parse(ProcessMessageDocument.java:111)
    at de.ams.ford.ws.ows.controller.GetStandardCodes.runWs(GetStandardCodes.java:116)
    at de.ams.ford.ws.ows.controller.GetStandardCodes.<init>(GetStandardCodes.java:75)
    at de.ams.ford.ws.ows.controller.Controller.<init>(Controller.java:301)
    at de.ams.ford.ws.ows.controller.Controller.main(Controller.java:323)
```

Code:

```
.
.
this.logger.debug("Parse folgende Eingabedatei:"+this.fileSource);
ProcessMessageDocument processMessageDocument = ProcessMessageDocument.Factory.parse(this.fileSource);
.
.//diese Klasse verarbeitet die Exception!!
        } catch (XmlException ex) {
            this.logger.error(null, ex);
.
```


----------



## mihe7 (10. Apr 2019)

Ich würde mal sagen, dass in der XML-Datei an der Stelle, an der ein ProcessMessage-Element erwartet wir, ein PutMessage-Element steht.


----------



## tklenin (10. Apr 2019)

Ach so ist das. Die XML Datei bekomme ich als Parameter übergeben. Das bedeutet folglich, dass der Übergabeparameter fehlerhaft ist, womit ich letztlich raus bin aus der Nummer...?!?


----------



## mihe7 (10. Apr 2019)

Das kann man pauschal nicht sagen. Wenn Du sicher gehen willst, musst Du Dir das im Detail anschauen. Wenn Du Dir Arbeit vom Hals schaffen willst, lass das die anderen machen (= "Huch, da scheint etwas mit Eurer Datei nicht zu stimmen... wird vom System abgelehnt...") 

Die sichere Variante sollte auch nicht allzu schwer sein. Dem Ganzen dürfte ein XML-Schema (xsd-Dateien) zugrunde zu liegen. Deine XML-Datei kann man dagegen validieren. Ist sie valide, hast Du ein Problem, ist nicht nicht valide, haben die anderen eins


----------

