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

问题描述 投票:0回答:1

我正在Tomcat中为我开发的webapp(我第一次这样做)部署一个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

我该怎么办?

提前致谢 :)

java maven tomcat web filepath
1个回答
0
投票

确保您的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())
© www.soinside.com 2019 - 2024. All rights reserved.