我在运行 Java Web 应用程序时遇到错误。我有一个 servlet 类和一个用于 Apache openNLP 文本分析的类。当我运行代码(将表单数据提交到 servlet)时,我在浏览器中收到以下错误代码
它还在 Eclipse 控制台中显示了以下异常详细信息。
下面是我的项目结构,我已将“en-parser-chunking.bin”文件放置在突出显示的区域中。
有没有更好的方法来放置我的“en-parser-chunking.bin”文件?
最佳答案
第一答案部分:
1) 放置 en-parser-chunking.bin
进入WebContent/WEB-INF/classes
或WebContent/WEB-INF/resources
Eclipse 项目的文件夹。这些是 WebappClassLoaderBase
实例所在的目录允许在 Web 应用程序运行时加载资源。
2)使用此代码片段(为简洁起见,已缩短):
String parserModelPath = "/WEB-INF/resources/en-parser-chunker.bin";
ParserModel model = new ParserModel(servletContext.getResourceAsStream(parserModelPath));
if(model!=null) {
// From here, <model> is initialized and you can start playing with it...
// Creating a parser
Parser parser = ParserFactory.create(model);
// Parse some things here
// ...
}
你应该得到一个可用的Parser
在运行时。有关引用,请参阅 JavaDoc ServletContext#getResourceAsStream还有这个StackOverflow post .
第二部分答案:
1) 放置 opennlp-tools-<opennlp-version>.jar
文件写入WebContent/WEB-INF/lib
或者在项目设置的 Web 应用程序的类路径中引用它。因此,该库及其类,例如 opennlp.tools.parser.ParserModel
,可以在项目运行时加载和使用。
2) 重新捆绑您的war
存档并将其重新部署到 Tomcat 的 webapps
目录。
希望有帮助,另请参阅我的similar answer .
关于java - 如何加载 'ParserModel' 以及将 "en-parser-chunking.bin"文件放置在 Web 应用程序中的何处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44429452/