在Java Web服务中保留url的位置在哪里?

时间:2017-07-20 07:23:25

标签: java web-services tomcat8

我正在编写利用其他Web服务(某些其他平台)的java Web服务,所以我必须在我的java Web服务中调用这些api并且它已经获得了url(静态ip)。我想在属性文件中保留包含IP的公共URL部分。但有没有办法在tomcat中保留这些属性或URL部分?存储网址的更好方法是哪种?

1 个答案:

答案 0 :(得分:2)

我总是将这样的常量定义放入JNDI变量中。对于Tomcat,这意味着在context.xml中声明它们通常这些常量在生产,测试和开发环境之间是不同的,因此它们应该绑定到服务器实例,而不是代码。此外,配置信息可能是敏感的(用户名和密码等),因此如果暴露给可以访问代码库的任何人,则会出现安全问题。

不幸的是,J2EE容器如何设置和维护JNDI变量没有标准。对于Tomcat,它们在context.xml中声明。对于IBM Websphere,它们是管理控制台设置。对于Oracle Weblogic,它们会进入需要编译到.war文件中的weblogic.xml文件。

如果你有幸不必在Weblogic上部署,那么JNDI就很棒。您的.war可以部署到任何环境,并为该服务器实例选择正确的设置。

如果确实需要部署到Weblogic,则可以使用以下选项:

  • 在"众所周知的"中使用属性文件@Thilo
  • 建议的文件系统上的位置
  • 让您的部署脚本打开.war文件并将xml定义文件替换为适合目标环境的文件。

请注意,数据库连接等资源更加标准化。所有J2EE容器都允许您通过管理控制台设置数据源,或者通过编辑context.xml来设置Tomcat的数据源。您的代码只需要知道JNDI名称,而不是数据库连接详细信息。