我正在尝试编写一些简单的Java服务,这样我们就可以从.NET调用Java代码了。到目前为止,我已经得到了在Glassfish下工作的概念的证明。当IDE完成所有工作时,非常简单。
现在,我真的陷入了Java中应该非常简单的东西上。例如,我希望将配置具体化,这样就可以在不重新编译的情况下更改连接字符串/用户名/应用程序变量/等等。
在.NET中,您只需将一些字符串放在网站根目录的web.config文件中,然后使用:ConfigurationManager.AppSettings["whateverIwant"];
我可以让java.util.Properties做我想做的事情(从一个独立的客户端),但是我不知道将.properties文件放在哪里,以及如何从web服务中获取到它的路径。
我也需要我的方法在WebSphere应用服务器中工作。谢谢!
发布于 2011-11-07 22:40:51
正如其他人所提到的,它在很大程度上依赖于容器,但是动态配置几乎总是存储在数据库中,而不是XML或.properties文件中。
正如我所看到的,这就像一个概念的证明,这里有一个快速而肮脏的解决方案:(不要为生产代码这样做)使用。缺点:每次更改都需要重新启动容器,但不需要重新编译应用程序。
要在Glassfish中使用系统属性,您可以转到"Configuration -> system Properties“部分,并在其中添加属性。然后从你的应用程序内部调用
String myValue = System.getProperty("myProperty");为了得到价值。所有java应用程序都支持这些属性,但我不知道如何在Websphere中配置它们。
发布于 2011-11-04 11:23:46
唉,Java在应用程序配置方面有一个巨大的漏洞。
你最好的选择是:
总之,这种情况绝对糟糕透顶。对于一个应用服务器来说,没有干净、合理的方法来提供一个简单的属性映射和UI来使用应用服务器的管理工具来编辑它。
我试图使用web上下文参数来解决这个问题,但是发现它们也是错误的。Glassfish忽略了设置的第一个web上下文参数,如果没有servlet上下文,就很难访问它们,所以您无法在整个应用程序中轻松地访问它们。
如果有人有一个更好的答案,我很想听,因为目前的情况似乎是惊人的一个规范,经历了几次主要的迭代。
发布于 2012-05-24 07:21:22
到目前为止,我找到的最好的解决方案是"EAC4J (Java外部应用程序配置)“。我在很多项目中都成功地使用过。
https://stackoverflow.com/questions/1094121
复制相似问题