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

时间:2019-03-21 09:12:49

标签: 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的路径(仅将路径用作String)?

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

我该怎么办?

预先感谢:)

1 个答案:

答案 0 :(得分: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())