使用Eclipse Helios,我尝试启动基于JSF的项目。
创建新工作区后,我安装了web-tools-platform。所有使用“帮助”菜单中的“安装新软件”,这都很有效。
为了开始为我的项目开发,我使用向导创建了一个新项目,我使用该向导下载并安装了Tomcat 6.0实例和运行时,并使用预设的“JavaServer Faces v1.2项目”对其进行了配置。
我创建了一个index.jsp文件(再次使用向导使用JSF模板)并在其上放置了一个JSF-outputText。
部署到tomcat似乎工作。在浏览器中调用index.jsp时,我会多次遇到以下异常:
29.12.2010 18:24:00 org.apache.catalina.core.StandardWrapperValve调用 SCHWERWIEGEND:Servlet jsp的Servlet.service()引发了异常 java.lang.RuntimeException:找不到FacesContext at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:321) 在javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:228) 在org.apache.jsp.login_jsp._jspx_meth_f_005fview_005f0(login_jsp.java:95) 在org.apache.jsp.login_jsp._jspService(login_jsp.java:69) 在org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 在org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:588) 在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:489) 在java.lang.Thread.run(Thread.java:662)
我所做的每一步都是标准点击向导过程。
知道为什么这似乎不起作用?
如果有帮助,我可以轻松发布截图或文件摘录,但我不在此处这样做以避免问题超载。
<小时/> 编辑:web.xml 此文件直接来自eclipse,我保留未经修改的文件,除了我删除了description-tags以缩短整个内容:
< / p>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Stundenplan</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
</web-app>
已经尝试将url-pattern设置为<url-pattern>/*</url-pattern>
但是它出现异常“java.lang.NoClassDefFoundError:javax / servlet / jsp / jstl / core / Config”
感谢和问候,托比亚斯
答案 0 :(得分:2)
用户在几天前发布了他的答案是完全正确的(为什么帖子被删除)。
有必要将jstl.jar文件添加到/WEB-INF/lib
并在eclipse中,您需要将其添加到构建路径
我不明白如果url-pattern是/faces/*
,即使真的不需要存在这样的文件夹,但你仍然可以调用该文件,例如/faces/index.jsp
非常感谢