我在运行java web应用程序时遇到错误。我有一个servlet类和一个用于Apache openNLP文本分析的类。当我运行我的代码(将我的表单数据提交给servlet)时,我在浏览器中得到以下错误代码
此外,它还显示了eclipse控制台中的异常详细信息。
下面是我的项目结构,我已将“en-parser-chunking.bin”文件放在突出显示的区域中。
有没有更好的方法来放置我的“en-parser-chunking.bin”文件?
答案 0 :(得分:2)
第一个部分答案:
1)将en-parser-chunking.bin
放入Eclipse项目的WebContent/WEB-INF/classes
或WebContent/WEB-INF/resources
文件夹中。这些目录允许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
。有关参考,请参阅ServletContext#getResourceAsStream的JavaDoc和此StackOverflow post。
第二部分答案:
1)将opennlp-tools-<opennlp-version>.jar
文件放入WebContent/WEB-INF/lib
或在项目设置的Web-App的类路径中引用它。因此,可以在项目的运行时加载和使用库及其类,例如opennlp.tools.parser.ParserModel
。
2)重新捆绑war
存档并将其重新部署到Tomcat的webapps
目录。
希望它有所帮助,另请参阅我的similar answer。