6

Netbeans7.2.1にJavaEEアプリがあります。デプロイしようとすると(ビルドは正常に終了します)、Tomcatログにエラーが表示されます。

Caused by: javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:154)
    at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:87)
    at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152)
    at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178)
    at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95)
    at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)
    at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:201)
    at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:187)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1454)

このエラーの原因となるコードを探していると、次のことがわかりました。

public Object lookup(String name) throws NamingException {
    return getURLOrDefaultInitCtx(name).lookup(name);
    }

これはどのように発生し、どうすれば解決できますか?

4

1 に答える 1

10

これは、Tomcat の場合、何らかの理由jsp-api.jarservlet-api.jarcatalina.jar、 などの任意のサーブレットコンテナ固有の JAR を webapp の にドロップしたときに発生します/WEB-INF/lib。そこからすべてのサーブレットコンテナ固有の JAR を削除する必要があります。それらはそこに属していません。また、これらの JAR が、内部にある他の JAR 内にネストされていないことを確認してくださいWEB-INF/lib

これは、別の方法で解決されるべきであった JSP/サーブレット ライブラリのコンパイル エラーを「修正」するための一般的な初心者の間違いです。つまり、Netbeans の「ターゲット サーバー」または Eclipse の「ターゲット ランタイム」に関連付けられるように IDE プロジェクトを構成します。IDE は、コンパイル時にサーバーのライブラリを自動的にインクルードします。

于 2012-12-19T20:02:25.043 に答える