繁体   English   中英

在JAVA中使用配置-最佳做法

[英]Using configuration in JAVA - best practice

就我而言:

  1. LangDetector是带有HtmlTags.config的 Java项目, 导出到LangDetector.jar
  2. LangDetectionService是导出到WAR文件的java jersey服务。 LangDetectionService使用LangDetector.jar (在buildpath中具有引用)

当我部署在Tomcat WAR文件,我没有看到HtmlTags.config在$ CATALINA_BASE / webapps /目录LangDetectionService。

我也尝试将HtmlTags.config添加到LangDetectionService中 ,并且在部署HtmlTags.config之后位于$ CATALINA_BASE / webapps / LangDetectionService文件夹中,但是它不起作用。

怎么了 最佳做法是什么?

  1. 检查HtmlTags.config是否在LangDetector.jar中。 它应该直接在jar文件的根目录下。
  2. 检查LangDetector.jar是否在LandDetectionService战争文件WEB-INF / lib中

如果是这样,则HtmlTags.config应该在类路径中,并且对您的服务可读。 但是您的问题尚不清楚应该读取此HtmlTags.config文件的什么代码。

您可以尝试像这样读取此文件:

log.debug("HtmlTags.config exists: " + new File("HtmlTags.config").exists());

,其中log是您的记录器。

与往常一样,您应该开始检查服务器和应用程序日志中的错误和警告。

您的问题让我感到奇怪,为什么您需要在该目录中查看该文件? 如果您想从您的应用程序中读取它,那么它应该在类路径中。 地理位置不是很重要,还是吗?

解决方案。 1.将HtmlTags.config添加到服务项目。 2.将“ Configuration.class.getResourceAsStream(“ /” + configName)”行更改为“ Configuration.class.getClassLoader().getResourceAsStream(configName)”行。 3.当LangDetector.jar加载HtmlTags.config时,它将从服务项目中获取它(行为类似于.NET)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM