2017-06-08 27 views
0

运行我的Java Web应用程序时出现错误。在这里我有一个servlet类和一个用于Apache openNLP文本分析的类。以下是我的这两个类的2个代码。如何加载'ParserModel'以及将“en-parser-chunking.bin”文件放在我的Web应用程序中的位置?

01. My servlet Class code

02. My OpenNLP Class code

当我运行这段代码(提交我的表单数据与Servlet)我得到下面的错误代码在浏览器中

Error in my Browser

而且它显示了以下异常详细信息在eclipse控制台中。

enter image description here

下面是我的项目结构,我已经放在“EN-解析器chunking.bin”文件中的高亮区域。

Project structure

请帮我解决这个问题。而我做错了什么?有没有更好的方法来放置我的“en-parser-chunking.bin”文件?答案

+0

你是如何将OpenNLP库附加到应用程序的? –

+0

我刚刚从网站下载并粘贴在这个突出显示的位置 – user8048032

+0

在这里回答的类似问题https://stackoverflow.com/questions/29311650/noclassdeffounderror-opennlp-tools-chunker-chunkermodel –

回答

2

首先部分:

1)将en-parser-chunking.bin到Eclipse项目的WebContent/WEB-INF/classesWebContent/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。作为参考,请参阅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

相关问题