java.lang.NoClassDefFoundError: javax/el/ELResolver when running SimpleHelloByEnteringName JSF example

后端 未结 2 1640
暖寄归人
暖寄归人 2020-12-20 03:03

I am new to JSF. I am using Tomcat 7.0.14 and trying to run SimpleHelloByEnteringName example but getting following errors in startup and at runtime

Startup Console

相关标签:
2条回答
  • 2020-12-20 03:33

    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.

    The warning is not relevant to the problem. JSF has already fixed it for you, but it is telling you that you should fix it yourself in the faces-config.xml.


    java.lang.ClassNotFoundException: javax.el.ELResolver

    This is however pretty serious. This can have several causes:

    • You are actually not running Tomcat 7.0 at all, but Tomcat 5.5 which is missing this class. Doublecheck it.

    • You have dropped a bunch of servletcontainer specific libraries such as el-api.jar, jsp-api.jar, etc of a different servletcontainer make/version (perhaps Tomcat 5.5?) in webapp's WEB-INF/lib or in Java's JRE/lib folder. Probably to overcome compilation problems. Moving/copying servletcontainer specific JARs around is the wrong solution. Undo it and remove them all.

    • Your web.xml is not declared conform at least the Servlet 2.5 specification. Since you mention to be using Tomcat 7.0, which is a Servlet 3.0 container, you should be declaring the web.xml conform Servlet 3.0:

      <?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>
      

    Update: oh wait ... I googled on the "SimpleHelloByEnteringName" and I discovered that this is actually a Roseindia.net (shudder) example as presented here: Downloading and Installing "SimpleHelloByEnteringName" JSF Example. I would like to stress that this site is the worst Java EE learning resource on the interwebs. I strongly recommend to head to other resources.

    • Coreservlets.com JSF 2.0 tutorial
    • Java EE 6 tutorial - JSF
    • Mkyong.com JSF 2.0 tutorials
    • My JSF 2.0 tutorial with Eclipse and Glassfish
    0 讨论(0)
  • I had a similar problem when executing a Dynamic web project in Eclipse.

    java.lang.NoClassDefFoundError: javax/el/ELResolver

    Here the problem is the Classes you use in your project are not defined in the classpath. In my case, I had to add

    1. el-api.jar
    2. jsp-api.jar
    3. servlet-api.jar

    into my Tomcat's classpath under Bootstrap entries.

    enter image description here

    So, In your case, check whether, these 3 jar's are present in C:\Tomcat\lib directory. Add it to the classpath if not present.

    Hope this solves your problem.

    0 讨论(0)
提交回复
热议问题