JSP 在 Openshift 中导入 java class

JSP importing java class in Openshift

我在 Eclipse 中创建了一个 java web 项目,它运行良好(使用 jsp、servlet 和 java 类)。现在我正在努力让它活下去。我决定将它托管在 Openshift 上,它提供自己的文件结构。我试过复制我的文件,大部分都有效。

问题是我的导入标签似乎不起作用,它找不到我的 类(例如从我的数据库中获取信息以显示的 databaseInteractor)。这可能是路径问题,但我不确定。

这是我在 Eclipse 中运行的:

<%@ page import ="java.util.ArrayList" %>
<%@ page import ="databaseInteractor.DatabaseInteractor" %>
<%@ page import ="databeseInteractor.House" %>

在 Eclipse 中,我的 类 House.java 和 DatabaseInteractor.java 都在 databaseInteractor 包中。但是在 OpenShift 中我不明白什么是包的等价物。

我尝试了路径的各种迭代,我得到的错误是:

  1. 只能导入一个类型。 MyClasses.DatabaseInteractor 解析为一个包 \(MyClasses 是我在 OpenShift 中创建的文件夹)

  2. DatabaseInteractor 无法解析为类型

正如您在下面看到的,出于调试目的,我已将 DatabseInteractor 复制到各处。您建议我在导入标签中尝试什么?

好的,仔细看了你的问题,发现有很多问题。 OpenShift 上的软件包与 Java 其他任何地方的软件包完全一样。如果您的项目在本地运行,我很惊讶,这一定是由于一些具有 class 路径的 Eclipse 魔法。

1.) 所有 .java 文件都应该在你的 src/main/java 目录中,这样它们就会被编译成 classes 等(假设这是一个基于 maven 的项目结构,它看起来像它)。

2.) 包中的任何 java class 都应该位于与包同名的文件夹的内部,例如,databaseInteractor.DatabaseInteractor 应该位于位置 /src/main/java/databaseInteractor/DatabaseInteractor.java,与作为包一部分的任何其他 class 相同。

3.) <%@ page import ="databeseInteractor.House" %>,数据库拼写错误,这可能会导致一些问题。

4.) 另外,很难说清楚,但是您的 web.xml 文件应该在 WEB-INF 文件夹中,而不是在 "package" 文件夹中。 我建议您研究如何在 Java 中使用包,并花一些时间研究 java 使用 Maven 结构的 Web 项目。