2017-06-08 8 views
0

Java Webアプリケーションの実行中にエラーが発生しました。ここでは、ApacheのopenNLPテキスト解析用のサーブレットクラスとクラスがあります。以下はそれらのクラスの私の2つのコードです。私は(サーブレットに私のフォームデータを提出)私は私のブラウザでエラーコードの下に取得し、このコードを実行すると「ParserModel」をロードする方法と、「en-parser-chunking.bin」ファイルをWebアプリケーションに配置する方法はありますか?

01. My servlet Class code

02. My OpenNLP Class code

また

Error in my Browser

それは例外の詳細の下に表示さEclipseコンソールで。以下は

enter image description here

私のプロジェクト構造であると私は強調表示された領域に「エンパーサ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)あなたのEclipseプロジェクトのWebContent/WEB-INF/classesまたはWebContent/WEB-INF/resourcesフォルダにen-parser-chunking.binを置きます。これらは、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のJavaDocを参照してください。答えの

第二一部:

1)WebContent/WEB-INF/libopennlp-tools-<opennlp-version>.jarファイルを配置したり、プロジェクトのセットアップのウェブアプリのクラスパスにそれを参照。したがって、ライブラリーとそのクラス(opennlp.tools.parser.ParserModelなど)は、プロジェクトの実行時にロードして使用することができます。

2)warアーカイブを再バンドルして、Tomcatのwebappsディレクトリに再デプロイします。

希望すると、私のsimilar answerも参照してください。

関連する問題