NoClassDefFoundError:javax/el/ELResolver在运行SimpleHelloByEnteringName JSF示例时
我是JSF新手。我正在使用Tomcat 7.0.14并尝试运行SimpleHelloByEnteringName示例,但在启动和运行时出现以下错误 启动控制台消息:NoClassDefFoundError:javax/el/ELResolver在运行SimpleHelloByEnteringName JSF示例时,jsf,tomcat,jsf-2,Jsf,Tomcat,Jsf 2,我是JSF新手。我正在使用Tomcat 7.0.14并尝试运行SimpleHelloByEnteringName示例,但在启动和运行时出现以下错误 启动控制台消息: INFO: Deploying web application directory SimpleHelloByEnteringName Jun 15, 2011 7:35:42 AM com.sun.faces.config.ConfigureListener contextInitialized INFO: Initializin
INFO: Deploying web application directory SimpleHelloByEnteringName
Jun 15, 2011 7:35:42 AM com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Mojarra 2.0.3 (FCS b03) for context '/SimpleHelloByEnteringName'
Jun 15, 2011 7:35:43 AM com.sun.faces.spi.InjectionProviderFactory createInstance
INFO: JSF1048: PostConstruct/PreDestroy annotations present. ManagedBeans methods marked with these annotations will have said annotations processed.
**Jun 15, 2011 7:35:44 AM com.sun.faces.config.processor.NavigationConfigProcessor addNavigationCasesForRule
WARNING: JSF1058: The resource referred to by to-view-id, 'result.jsp', for navigation from '/pages/inputname.jsp', does not start with '/'. This will be added for you, but it should be corrected.**
Jun 15, 2011 7:35:44 AM com.sun.faces.config.ConfigureListener$WebConfigResourceMonitor$Monitor <init>
INFO: Monitoring jndi:/localhost/SimpleHelloByEnteringName/WEB-INF/faces-config.xml for modifications
Jun 15, 2011 7:35:44 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-apr-8081"]
Jun 15, 2011 7:35:44 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Jun 15, 2011 7:35:44 AM org.apache.catalina.startup.Catalina start
这个问题是如何产生的?我如何解决它
警告:JSF1058:从“/pages/inputname.jsp”进行导航的视图id“result.jsp”引用的资源不以“/”开头。这将为您添加,但应予以更正
警告与问题无关。JSF已经为您修复了它,但它告诉您应该在faces config.xml
中自己修复它
java.lang.ClassNotFoundException:javax.el.ELResolver 然而,这是相当严重的。这可能有几个原因:
- 实际上,您运行的不是Tomcat7.0,而是缺少此类的Tomcat5.5。仔细检查一下
- 您已经在webapp的
或Java的WEB-INF/lib
文件夹中删除了一系列特定于servletcontainer的库,例如不同servletcontainer版本(可能是Tomcat 5.5?)的JRE/lib
、el api.jar
。可能是为了克服编译问题。移动/复制特定于servletcontainer的JAR是错误的解决方案。松开并将其全部拆下jsp api.jar
- 您的
未声明至少符合Servlet 2.5规范。既然您提到要使用Tomcat 7.0,这是一个Servlet 3.0容器,那么您应该声明web.xml
conform Servlet 3.0:web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <!-- Your config here --> </web-app>
更新:哦,等等。。。我在谷歌上搜索了“SimpleHelloByEnteringName”,发现这实际上是一个Roseindia.net(颤栗)示例,如下所示:。我想强调的是,这个网站是互联网上的JavaEE学习资源。我强烈建议您转到其他资源
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<!-- Your config here -->
</web-app>