gpt4 book ai didi

java - 在外部 Tomcat 容器中加载文件与 Bootrun

转载 作者:行者123 更新时间:2023-11-28 22:26:20 24 4
gpt4 key购买 nike

我正在尝试在 Spring 中加载文件。该文件包含基于 OpenRules 引擎的规则。问题是当我使用 Spring BootRun 时它被正确加载。但是,当我尝试在外部 Tomcat 中部署相同的文件时,出现错误 FileNotFound。

我通过以下方式提及属性文件中的文件路径:

rules.open.main.decision.path=file:rules/main/Decision.xls

规则文件夹直接在项目文件夹下。

在 Java 中,我正在加载文件:

public Decision getDecisionEngine(){        
String decisionName = "CustomerPreventStrategies";
//String fileName = "file:rules/main/Decision.xls";
String fileName = env.getProperty("rules.open.main.decision.path");
System.out.println("rules.open.main.decision.path:"+fileName);

Decision decision = new Decision(decisionName,fileName);
return decision;
}

当我为外部 Tomcat 创建 WAR 时,我将它保存在 2 个位置。但这没有帮助。

 war {
baseName = 'MyOpenRules'
version = '0.1.0'
from("rules") {
into("WEB-INF/classes/rules")
}
from("rules") {
into("rules")
}
}

我得到:

Caused by: java.io.FileNotFoundException: rules\main\Decision.xls (The system cannot find the path specified)

最佳答案

尝试使用

rules.open.main.decision.path=file:/rules/main/Decision.xls

这使得 Spring 从位置 WEB-INF/classes/rules/main/Decision.xml 中挑选

当你使用 rules.open.main.decision.path=文件:rules/main/Decision.xls该文件应位于当前目录中。当我们通过 Tomcat_HOME/bin 中的 catalina.bat 或 startup.bat 启动 tomcat 服务器时,bin 目录是该进程的当前文件夹。因此,当您将文件保存在有效的 tomcat bin 中时。

当你把/spring 使用相对路径来查找文件时。

关于java - 在外部 Tomcat 容器中加载文件与 Bootrun,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43501855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com