-1

Maven 対応プロジェクト (Eclipse Java EE でサーバーとして実行されている Tomcat 6 の最新の m2 プラグインを備えた Eclipse 3.7) で Tomcat が JSP を実行するのに問題があります。

java.lang.NullPointerException
    at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)

このエラーは、Tomcat が提供する JSP、サーブレットなどの jar がプロジェクト jar と競合していることを示しています。ただし、すべてが適切に設定されているように見えます。

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.1</version>
  <scope>provided</scope>
</dependency>

VM でクラス トレースをオンにすると、起動時に Tomcat の lib ディレクトリの jsp jar が JspFactory に使用されていることがわかります。

[Loaded javax.servlet.jsp.JspFactory from file:/C:/tomcat-6.0.28/lib/jsp-api.jar]

サーバーが起動し、初めて jsp ページにアクセスする準備ができたとき、しかし、別の結果が得られます。

[Loaded javax.servlet.jsp.JspFactory from file:/C:/Users/alice/.m2/repository/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar]

したがって、私にはわからない何らかの理由で、pom.xml のスコープが提供に設定されていても、m2 リポジトリの jsp jar が Web アプリケーションによって使用されています。私はグーグル検索を使い果たしました。この問題の原因となっている可能性があるその他の構成の問題は何ですか?

4

1 に答える 1

1

過去数年間、TomcatEclipseプラグインに関するあらゆる種類の構成関連の問題を定期的に確認してきました。

プラグインをダンプして、自分自身に大きな恩恵を与えることをお勧めします。スタンドアロンのTomcatを実行します。そんなに難しいことではありません。

また、Eclipseがビルドするwarファイルを指すようにTomcatを構成するのも簡単なので、明示的にデプロイする必要はありません。

スタンドアロンのTomcatインスタンスのデバッグを設定するのも非常に簡単です。

利点は、プラグインの気まぐれに対処する必要がなく、一般的に言えば、stufが機能することです。私の知る限り、マイナス面はありません。

于 2013-01-04T22:55:47.120 に答える