6

我在 Netbeans 7.2.1 中有 Java EE 应用程序。尝试部署它(构建结束正常),我在 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

当您出于某种原因在webappjsp-api.jar的. 您应该从那里删除所有特定于 servletcontainer 的 JAR,它们不属于那里。此外,请确保这些 JAR 没有嵌套在您拥有的其他 JAR 中。servlet-api.jarcatalina.jar/WEB-INF/libWEB-INF/lib

这是一个常见的初学者错误,目的是“修复” JSP/Servlet 库上的编译错误,这些错误应该以不同的方式解决;即通过将 IDE 项目配置为与 Netbeans 中的“目标服务器”或 Eclipse 中的“目标运行时”相关联。然后,IDE 将在编译期间自动包含服务器的库。

于 2012-12-19T20:02:25.043 回答