2013-12-02 4 views
1

Я использую веб-службы spring-ws, и у меня есть метод веб-службы, как показано ниже.Возврат ответа веб-службы клиентам?

В чем разница между нижеуказанными методами?

@PayloadRoot(namespace = NAMESPACE_URI, localPart = "Request") 
@ResponsePayload() 
public JAXBElement<Response> getData(@RequestPayload Request request) { 

    //Some code 
    } 

и

@PayloadRoot(namespace = NAMESPACE_URI, localPart = "Request") 
@ResponsePayload() 
public Response getData(@RequestPayload Request request) { 

    //Some code 
    } 

Употреблять этот веб-сервис, с помощью клиентов, которые подход считается хорошим? Нужно ли мне следовать первому методу или второму методу? Если я непосредственно отправляю элемент jaxb, тогда будут ли возникнут проблемы с клиентами? Какой подход рекомендуется? полезно ли возвращать элемент jaxb напрямую?

Спасибо!

+0

Разница в первом ответе не является корневым объектом XML (т. Е. Аннотируется с помощью '@ XmlRootElement'), а во втором -. Для сгенерированного сообщения это не должно быть иначе. –

+0

Если я напрямую возвращаю JAXBElement, то клиенты должны сделать любую дополнительную обработку, чтобы получить результат? Благодаря! – user755806

+0

Прочтите мой ответ. Это не имеет значения для сгенерированного XML! Таким образом, не должно быть никаких различий, это XML, который передает НЕ-объекты. –

ответ

0

Любой подход добавит XML в тело сообщения SOAP. Ни один из подходов не оказывает прямого воздействия на клиента. Клиент будет основан на XML-схеме, на которую ссылаются ваши WSDL, а не на ваши классы Java.

Смежные вопросы