私はmavenで基本的なWebアプリケーションを作成してから、Eclipse 4.2にインポートします。 Tomcat 7をサーバーとしてセットアップしました。私は、Webアプリケーション用のmongodbで春のデータを設定しようとしています。WebApplicationInitializer container.addServlet()がnullを返します
私は、コードベースの構成アプローチを次のですが、ここが見つかりました:私は、サーバー上でプロジェクトを実行するとWebApplicationInitializer
を、私は私が作成したWebApplicationInitializerクラスでnullポインタ例外を取得します。行: container.addServlet( "dispatcher"、新しいDispatcherServlet(dispatcherContext));ヌルが返されます。
私は行方不明ですか?注釈を使用してゼロからWebアプリを作成するのはちょっと新しいです。まだNPEを取得し、何も変更しませんでした
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
:
public class ATWWebAppInitializer implements WebApplicationInitializer
{
@Override
public void onStartup(ServletContext container) throws ServletException
{
// Create the 'root' Spring application context
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(SpringMongoConfig.class);
// Manage the lifecycle of the root application context
container.addListener(new ContextLoaderListener(rootContext));
// Create the dispatcher servlet's Spring application context
AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();
dispatcherContext.register(ATWDispatcherConfig.class);
// Register and map the dispatcher servlet
ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher", new DispatcherServlet(dispatcherContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/*");
}
}
POMにこれを追加しようとしました:ここ
は、問題のクラスです。サーブレットがすでに登録されている場合、container.addServletはnullを返します( http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html)。 Tomcatはすでにサーブレットを登録していますか?皆さんの時間を無駄にすることに対するお詫び同じサーブレットを登録しているweb.xmlファイルがありました。だから、これはnullを返すだけでした。今404を固定するために、おそらく何とかコントローラを台無しにしました。
本当にわかりませんが、同様の設定は私のためにはうまくいきます。ですから、本来、 'dispatcher.setLoadOnStartup()'行でnullポインタ例外が発生しています。これは、前の行がnullディスパッチャを与えていることを考慮していますか? –
それは正しいです。ディスパッチャにアクセスする次の行がNPEを投げています。私はそれがサーブレットAPIと関係があるかもしれないと思っています。私はPOMに依存関係を設定していませんでした。私はTomcatのlibディレクトリから自分のビルドパスにjarファイルを追加しました。 – MattG
まあまあ、私はまったく同じ問題を抱えています。純粋に注釈をつけようとすると、 'web.xml'ファイルがありません。 – Jagger