我正在编写利用其他Web服务(某些其他平台)的java Web服务,所以我必须在我的java Web服务中调用这些api并且它已经获得了url(静态ip)。我想在属性文件中保留包含IP的公共URL部分。但有没有办法在tomcat中保留这些属性或URL部分?存储网址的更好方法是哪种?
答案 0 :(得分:2)
我总是将这样的常量定义放入JNDI变量中。对于Tomcat,这意味着在context.xml中声明它们通常这些常量在生产,测试和开发环境之间是不同的,因此它们应该绑定到服务器实例,而不是代码。此外,配置信息可能是敏感的(用户名和密码等),因此如果暴露给可以访问代码库的任何人,则会出现安全问题。
不幸的是,J2EE容器如何设置和维护JNDI变量没有标准。对于Tomcat,它们在context.xml中声明。对于IBM Websphere,它们是管理控制台设置。对于Oracle Weblogic,它们会进入需要编译到.war文件中的weblogic.xml文件。
如果你有幸不必在Weblogic上部署,那么JNDI就很棒。您的.war可以部署到任何环境,并为该服务器实例选择正确的设置。
如果确实需要部署到Weblogic,则可以使用以下选项:
请注意,数据库连接等资源更加标准化。所有J2EE容器都允许您通过管理控制台设置数据源,或者通过编辑context.xml来设置Tomcat的数据源。您的代码只需要知道JNDI名称,而不是数据库连接详细信息。