Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web服务i18n_Java_Spring_Web Services_Cxf - Fatal编程技术网

Java Web服务i18n

Java Web服务i18n,java,spring,web-services,cxf,Java,Spring,Web Services,Cxf,我正在使用cxf和spring开发一些web服务。服务必须具有区域设置意识,因为有些消息是在数据库中定义的 正确的实施方式是什么 应该如何将区域设置传递给服务?可能在HTTP头或SOAP头中。我不希望使用HTTP以外的其他传输,所以HTTP头可能是一个不错的选择 如何从web服务代码中检索区域设置?也许我可以使用一些Spring线程本地功能。顺便说一句,我正在使用Spring安全性进行身份验证和授权,因此我可以在安全上下文中以某种方式放置区域设置 任何评论或例子都会大有帮助 非常感谢 一般来说,

我正在使用cxf和spring开发一些web服务。服务必须具有区域设置意识,因为有些消息是在数据库中定义的

正确的实施方式是什么

应该如何将区域设置传递给服务?可能在HTTP头或SOAP头中。我不希望使用HTTP以外的其他传输,所以HTTP头可能是一个不错的选择

如何从web服务代码中检索区域设置?也许我可以使用一些Spring线程本地功能。顺便说一句,我正在使用Spring安全性进行身份验证和授权,因此我可以在安全上下文中以某种方式放置区域设置

任何评论或例子都会大有帮助


非常感谢

一般来说,你会问隐式论点和显式论点的利弊

隐式参数通常用于传递数据库连接、多租户ID、用户语言等信息,这些不是真正直接的函数/服务参数,但它们对生成的结果有影响

在封闭系统中,可以考虑隐式传递这些信息。因此,不需要显式地传递这些信息(这会使代码变得混乱)

另一方面,它使您的代码“不那么显式”:如果您(或其他人)稍后查看代码,可能不清楚是否有其他东西在幕后传递:声明隐式参数的位置与隐式使用它的函数之间的距离可能令人困惑

因此,即使在一个封闭的系统中,我们也应该谨慎地使用这一特性:“少输入”的优势应该与“隐形隐式参数”的成本相比较


另一方面,在公共API的上下文中,我不会使用隐式:没有什么比显式传输所有参数的函数调用更简单:我不会添加任何其他人为的技术复杂性。如果您保持技术界面简单,这可能会防止调用方失望。

也许您可以将其添加到方法签名中?在我看来,区域设置就像元数据,我认为更合适的位置是在某个标题中。我理解您的POV,但将其添加到方法中会使其与所需的事实更加相关。更不用说,它节省了客户端开发人员的可能性,他们需要修整他们的WS框架,以找到如何发送头(而所有这些都用来发送数据作为一个参数)。我将不得不考虑这个选项,你的论点似乎是合乎逻辑的。