java - 在 Tomcat 中部署 WAR 文件(路径)

标签 java maven tomcat web filepath

我正在 Tomcat 中为我开发的 Web 应用程序部署一个 WAR 文件(这是我第一次这样做)。 当我部署应用程序并且找不到资源时,问题就来了。

我正在将文件(例如 CSV 文件)保存在这个项目的错误中:

"src/main/resources/diseases.csv"

当我在 tomcat 中部署项目时,tomcat 给我这个错误:

"org.apache.spark.sql.AnalysisException: Path does not exist: file:/opt/tomcat/apache-tomcat-9.0.16/bin/src/main/resources/conenfermedad.csv;"

这是我遇到错误的代码行:

String dataPred = thalg.randtrp("src/main/resources/conenfermedad.csv",             
                "src/main/resources/outWekaEnfermedad.arff");

编辑: 我一直在尝试不同的解决方案,但我遇到了同样的问题,因为如果我使用 InputStream,我如何才能获得使用 dataFrameReader 的路径(这仅将路径用作字符串)?

InputStream is = getClass().getResourceAsStream(In);

        BufferedReader reader = new BufferedReader(new InputStreamReader(is));

        //InputStream is = getClass().getResourceAsStream(In);

        final DataFrameReader dataFrameReader = sparkSession.read().option("header", true);
        final Dataset<Row> trainingData = dataFrameReader.csv(In).toDF("IDPatient", "ECG_EKG", "Temp",
                "SPO2Min", "SPO2Max", "BPMmin", "BPMmax", "BPMavg", "SYS", "DIA", "EDAmin", "EDAmax", "EDAavg", "Disease");
        // con "*.csv" para que lea todo el directorio

我应该做错什么?

提前致谢:)

最佳答案

确保您的 CSV 文件包含在您的 WAR 文件中。由于 WAR 文件在技术上只是一个 ZIP 文件,您可以使用任何 ZIP 程序来检查它。

如果您使用的是 Maven,则需要显式包含它:

<build>
...
    <resources>
        <resource>
            <filtering>true</filtering>
            <directory>src/main/resources</directory>
            <includes>
                <include>diseases.csv</include>
            </includes>
        </resource>
    </resources>
...
</build>
如果不需要任何占位符替换,

Filtering 可以设置为 false(或忽略)。在 include 标签中你也可以使用 wildcards .

然后您可以像这样使用 csv 文件:

new InputStreamReader(getClass().getResourceAsStream("/diseases.csv"), StandardCharsets.UTF_8.name())

关于java - 在 Tomcat 中部署 WAR 文件(路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55277016/

相关文章:

java - 使用netbeans从jtable中的mysql检索数据

java - 如何从多行字符串中删除特定行

java - Mongodb通过java中的嵌套字段搜索

java - 在 Mapreduce 程序中使用 MulipleInputs 会出现错误

session - Vaadin Framework 7 中 session 超时的不规则性

java - Servlet RequestDispatcher 不转发

java - Android 中的 HSVToColor 有点奇怪

java - DDD、JPA 和多模块 Maven

java - IntelliJ 不会重新编译/构建 Maven 项目

java - EntityManager 总是返回 null