Я получаю сообщение об ошибке "com.sun.istack.internal.SAXException2: невозможно маршалировать тип" java.lang.String "в качестве элемента, так как отсутствует аннотация @XmlRootElement", когда объект запроса ниже отправляется как вход для Marshalling.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns:sampleRequest xmlns:ns="http://samplenamespace.com/x">
<ID>7cbb07d7-ca09-4f5b-b441-88f43eee9546</ID>
<item>
<num>1</num>
<details>
<detailId>22</detailId>
</details>
<details>
<detailId>22</detailId>
</details>
</item>
</ns:sampleRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Я создал JAXbElement (ниже), как объяснялось в большинстве решений для всех элементов (ID, num, detailId), у которых нет аннотации @XmlRootElement. Но это все равно дает мне ту же ошибку.
private final static QName _ID_QNAME = new QName("", "ID");
@XmlElementDecl(namespace = "", name = "ID")
public JAXBElement<String> createtransactionID(String value)
{
return new JAXBElement<String>(_ID_QNAME , String.class, null, value);
}
Тем не менее, этот запрос ниже не имеет проблемы (хотя это не то, что я хочу отправить).
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns:sampleRequest xmlns:ns="http://samplenamespace.com/x">
<ns:sampleRequestType>
<ns:sampleRequest xmlns:ns="http://samplenamespace.com/x">
<ID>7cbb07d7-ca09-4f5b-b441-88f43eee9546</ID>
<item>
<num>1</num>
<details>
<detailId>22</detailId>
</details>
<details>
<detailId>22</detailId>
</details>
</item>
</ns:sampleRequest>
</ns:sampleRequestType>
</ns:sampleRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Может кто-нибудь проверить и сообщить, какую ошибку я делаю?