我需要一些帮助,我想做一个程序并使用
if(session.getAttribute("logged")!="1"){
String err="You must be logged in!!";
request.setAttribute( "error", err );
String nextJSP = "/login.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request,response); }
Run Code Online (Sandbox Code Playgroud)
%>
在一个jsp中,但我的老板告诉我使用jstl所以我把它改为:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<c:if test="${session.getAttribute('logged')!=null}">
<jsp:forward page="login.jsp">
</jsp:forward>
</c:if>
<c:if test="${session.getAttribute('logged')==null}">
<jsp:forward page="princ.jsp"> </jsp:forward>
</c:if>
Run Code Online (Sandbox Code Playgroud)
我得到一个令人讨厌的错误:
"org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application "
Run Code Online (Sandbox Code Playgroud)
我在互联网上搜索了一些修复,我把javax.servlet.jsp.jstl-api-1.2.1-javadoc.jar放在我的库中,甚至将javaee.jar放在Tomcat库中,但仍然没有得到解决方案这个,有人可以帮帮我吗?PS:我为Web开发人员提供了Eclipse Java EE IDE.(INDIGO)Tomcat 7.08
我一直在徒劳地尝试实现 tomcat 9 的 jakarta servlet,而不是以前的 javax.servlet 实现(因为我的理解是 jakarta 包是前进的方向)。问题是,当我将浏览器指向我的 servlet 的 url 时,我收到以下错误...
java.lang.ClassCastException: class cti.nm.web.Index cannot be cast to class javax.servlet.Servlet (cti.nm.web.Index is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @48c76607; javax.servlet.Servlet is in unnamed module of loader java.net.URLClassLoader @621be5d1)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:432)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:832)
Run Code Online (Sandbox Code Playgroud)
问题已经很明显了。Tomcat 正在尝试将我的 jakarta.servlet.http.HttpServlet 转换为 javax.servlet.Servlet,这显然不起作用。我无法想象的是如何告诉它 servlet 实际实现的类。
类本身被声明为...
package cti.nm.web;
import jakarta.servlet.http.HttpServlet;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class Index extends …Run Code Online (Sandbox Code Playgroud) 首先请注意,我是EE的新手,特别是Eclipse(我在生命中第二次与Eclipse一起工作:)).
然后我打开了由其他人创建的Eclipse项目.它使用Java EE(一些EJB,Persistence API ......).无法运行这个项目,有编译错误 - 我无法让它使用EE库 - 它看起来像这样:

没有已知的Anotations,也没有快速修复.该项目还包含Maven依赖项(我已经设法为Eclipse安装了Maven插件),并且依赖项中的所有类都在代码中显示警告.像这样:

如何设置Eclipse以使用此EE项目以便能够编译和运行它?谢谢你的回答.
编辑:我正在使用Eclipse 2.0.0.2并且我必须使用它 - 它的Eclipse的Rational Team Concept版本和2.0.0.2以上的版本与RTC服务器不兼容.
我按照此链接中的指南安装 JSTL,但当我尝试启动 JSP 页面时出现以下错误:
java.lang.NoClassDefFoundError:javax/servlet/jsp/tagext/TagLibraryValidator
标签库声明是:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Run Code Online (Sandbox Code Playgroud)
我在 Tomcat webapps 下安装了 JSTL 1.1/WEB-INF/lib并尝试在我的项目中执行相同的操作,但它不起作用。我也尝试了 JSTL 1.2 版,但仍然出现相同的消息。这是如何引起的以及如何解决?
当我启动tomcat时,我收到此错误
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClass0(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1301)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:207)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3666)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4258)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Run Code Online (Sandbox Code Playgroud)
我已经将servlet.jar放在classpath和tomcat_home/commons/lib文件夹中
请任何人建议做什么.
我正在将应用程序迁移到JBoss 7,其中所有依赖项都在"JBOSS_HOME/server/default/lib"(JBoss 4)中.我包含了lib "servlet.jar"(javax.servlet.*),但是,在设置了JBoss 7的全局模块(modules.xml,standalone.xml,war文件中的jboss-deployment-structure.xml)后,JBoss正常加载了库.
当JBoss 7尝试启动过滤器时,我得到以下异常:
15:09:15,222 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/RegistrarValorDolar]] (MSC service thread 1-2) Exception starting filter cripto: java.lang.ClassCastException: cenpra.com.sigtec.business.utilities.SessionFilter cannot be cast to javax.servlet.Filter
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:441) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3269) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3865) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_15]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_15]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_15]
Run Code Online (Sandbox Code Playgroud)
试图删除从全球模块库"的servlet.jar",在尝试了服务器负载是通过内部的jar自己的类,我得到了ClassNotFoundException的javax.servlet.Filter类.
JSF 1.2-1.2_07-b03-FCS
JSTL 1_1-mr2(特别版)
Java 1.6.0_22-b04
Eclipse 3.6.0(Helios)
Tomcat 6.0.28(也需要在Weblogic上运行)
IE 7.0.5730.13
Firefox:6.0
我们有页面:http:// {host:port} /mybase/faces/mypage.jsp ...
它通过超链接,重定向等从多个外部页面调用.
我们想要以纯粹的"JSF"方式确定调用它的页面的URL(以便实现命令按钮"后退"按钮).
我们知道我们可以这样做:
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpServletRequest origRequest =
(HttpServletRequest)externalContext.getRequest();
String referrer = origRequest.getHeader("referer");
Run Code Online (Sandbox Code Playgroud)
但是,这需要HttpServletRequest,它需要包含servlet-api.jar文件.
问题:这可以用纯JSF方式完成,因此不包括servlet-api.jar文件吗?
谢谢,约翰
编译Java文件时,我收到此错误消息:
error: package javax.servlet does not exist
Run Code Online (Sandbox Code Playgroud)
我为Jave EE SDK安装了一个大的.SH文件,Java版本给了我这个:
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我需要安装其他东西吗?
我使用Tomcat 7作为Servlet容器,/Library/Tomcat/
并使用命令行进行简单的文本编辑器.
以下JSF片段:
<p:dataTable value="#{userbean.getAll()}" var="user">
Run Code Online (Sandbox Code Playgroud)
引发此异常:
Encountered "(" at line 1, column 18. Was expecting one of: "}" ... "." ... "[" ... ">" ... "gt" ... "<" ... "lt" ... ">=" ... "ge" ... "<=" ... "le" ... "==" ... "eq" ... "!=" ... "ne" ... "&&" ... "and" ... "||" ... "or" ... "*" ... "+" ... "-" ... "/" ... "div" ... "%" ... "mod" ...
org.apache.el.parser.ParseException: Encountered "(" at line 1, column 18. Was expecting one of: …Run Code Online (Sandbox Code Playgroud) 迁移到JSF 2.2后,我得到以下异常.具体来说,我正在将Mojarra 2.1.17升级到Mojarra 2.2.8.
java.lang.NoSuchMethodError: javax.faces.component.UIComponent.getPassThroughAttributes(Z)Ljava/util/Map;
at org.primefaces.renderkit.RendererUtils.renderPassThroughAttributes(RendererUtils.java:79)
at org.primefaces.renderkit.CoreRenderer.renderDynamicPassThruAttributes(CoreRenderer.java:119)
at org.primefaces.renderkit.CoreRenderer.renderPassThruAttributes(CoreRenderer.java:114)
at org.primefaces.renderkit.BodyRenderer.encodeBegin(BodyRenderer.java:44)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:823)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1611)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
Run Code Online (Sandbox Code Playgroud)
当我检查UIComponent内部时jsf-api-2.2.8.jar,我可以看到有一种方法Map<String, Object> getPassThroughAttributes(boolean create);.
这是怎么造成的,我该如何解决?