如何指定应返回jax-ws服务结果的语言?

时间:2012-01-13 14:26:16

标签: java internationalization jax-ws

我目前正在开发一个jax-ws webservice,它被假定为从数据库提供国际化的搜索结果。

我查看了互联网,找到了一个具体的代码示例,其中languageCode / languageId以标准方式与SOAP信封一起发送(为了避免将languageId作为webservice方法的参数发送),但到目前为止还没有找到任何具体的东西。

任何人都可以向我推荐一个如何解决这个问题的好方法吗?

与此同时,我发现了一种通过HTTP请求标头传输元数据(languageId,用户,密码)的方式 javax.xml.ws.handler.MessageContext.HTTP_REQUEST_HEADERS

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

有没有人在使用这种传输方法时看到一些明显的缺点(通过HTTP标头而不是SOAP信封中)?

2 个答案:

答案 0 :(得分:2)

不是很令人惊讶,但它有一个标准。 http://www.w3.org/TR/ws-i18n/

但我不确定它有多可行。

答案 1 :(得分:2)

正如另一个答案中所述,您可以使用标准WS-I18N SOAP extension

  

需要发送国际首选项的SOAP文档应该   在标题中包含i18n:国际元素信息项。   当从请求者发送到提供者时,标头代表   请求者或其客户端应用程序的首选项。当发送时   来自提供者的响应消息,标题表示设置   该服务用于处理请求。

在此blog post中查看如何在JAX-WS / Metro中添加SOAP标头(它包含指向特定步骤的详细信息)。

希望这有帮助。