我正在编写使用jsp文件直接调用java类来获取结果的webApp。使用getResourceAsStream进行BufferedReader和InputStream
的JSP文件是这样的:
<%
String queryKey = request.getParameter("id");
int jobID = Integer.parseInt(queryKey);
out.println(jobID);
ArrayList<Integer> myTopList = JobRecByBoWJaccard.topJobsByBoW(jobID);
%>
在Java类文件被访问过:
BufferedReader br = new BufferedReader(new FileReader("WebContent/StopWords/stop-words-english1.txt"));
和
private InputStream modelInputT = new FileInputStream("WebContent/OpenNLP_Models/en-token.bin");
将tomcat找不到引用的文件,有人表示使用getResourceAsStream,但这是针对servlet的。我直接调用java类而不使用任何servlet。
private InputStream modelInputT = = this.getClass().getClassLoader().getResourceAsStream("WebContent/OpenNLP_Models/en-token.bin");
这导致java类无法找到该文件。需要帮助以及如何对这些Java类进行更改?
哪里是WebContent目录里面你战争?看起来你的相对路径是错误的。其他选项是使用文件的绝对路径。 –
只有当您尝试加载的资源位于类路径中时,getResourceAsStream才起作用,即在您的案例中的jar或WEB-INF/classes中。如果资源存在,那么您应该检查包含它的包/文件夹结构:WEB-INF/classes/OpenNLP_Models/en-token.bin意味着getResourceAsStream(“OpenNLP_Models/en-token.bin”);. – robermann
@BimaleshJha我改成了'/ Users/XX/XX/Eclipse/App/WebContent/StopWords/stop-words-english1。txt'仍然无法在Mac上工作 – GeorgeG