Как указать язык, на котором должны быть возвращены результаты для сервиса jax-ws? - PullRequest
1 голос
/ 13 января 2012

В настоящее время я работаю над веб-сервисом jax-ws, который, как предполагается, предоставляет интернационализированные результаты поиска из базы данных.

Я просмотрел Интернет для поиска конкретного примера кода, в котором languageCode / languageId отправляется стандартным способом вместе с конвертом SOAP (во избежание отправки languageId в качестве параметра веб-службыметод), но пока не нашел ничего конкретного.

Кто-нибудь может порекомендовать мне хороший подход к решению этой проблемы?

Тем временем я нашел способ транспортировкиметаданные (languageId, user, password) через заголовки HTTP-запросов javax.xml.ws.handler.MessageContext.HTTP_REQUEST_HEADERS

http://www.mkyong.com/webservices/jax-ws/application-authentication-with-jax-ws/

Кто-нибудь видит некоторые явные недостатки в созданиииспользование такого метода транспорта (через заголовки HTTP, а не в конверте SOAP)?

Ответы [ 2 ]

2 голосов
/ 13 января 2012

Как также отмечено в другом ответе, вы можете использовать стандартное WS-I18N SOAP расширение .

SOAP-документы, которые должны отправлять международные настройки, ДОЛЖНЫ включите в заголовок информационный элемент i18n: international element. При отправке от запрашивающей стороны поставщику заголовок представляет предпочтения запрашивающей стороны или ее клиентского приложения. Когда отправлено в ответное сообщение от провайдера, заголовок представляет настройки что служба использовала для обработки запроса.

Проверьте, как вы можете добавить SOAP-заголовки в JAX-WS / Metro в этом блоге (в нем есть ссылки на конкретные шаги).

Надеюсь, это поможет.

2 голосов
/ 13 января 2012

Не удивительно, но для него есть стандарт. http://www.w3.org/TR/ws-i18n/

Однако я не уверен, насколько он жизнеспособен.

...