When you are trying marshal MyClass, that is not anotated as @XmlRootElement element, you can obtain:
unable to marshal type "org.company.MyClass" as an element
because it is missing an @XmlRootElement annotation
Possible workaround is marshal your object in this way:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
JAX-WS, Metro,
hází "Stream already closed"
Při použití streamovaného dataSource
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Stane se to, že když je zapnutá Schema Validation, tak při validaci se přečte celý stream (ten attachment).
Takže validace ho celý přečte a když dojde na skutečné spracování requestu a chtějí se přečíst data, tak to hodí "Stream already closed".
A je po srandě.
Neznám žádné rozumné řešení tohoto problému. U nás jsme to pořešili tím, že jsme udělali vlastní DataSource. Která obalí skutečný stream a při prvním zavolání metody getInputStream() - což je z validace nevrátí skutečný stream, ale jen "new ByteArrayInputStream(new byte[]{})"
A až při druhém zavolání metody getInputStream() vrátí skutečný stream.
Tím ho validace nezničí a vše funguje. Jak říkám, jestli ví někdo jak to řešit lépe - sem s tím.
Takový hrozný DataSource pak vypadá zhruba takhle:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters