Warum wirft der mir diese Exception?

Status
Nicht offen für weitere Antworten.

Tobias

Top Contributor
Hallo,
das hier ist meine erste JSP, sie dient bloß als Test. Leider bekomme ich stets Exceptions beim Ausführen, mit denen ich nicht klar komme. Würdet ihr mir bitte helfen?

Diese Exception wird geworfen:
Code:
org.apache.jasper.JasperException
	org.apache.jasper.runtime.JspRuntimeLibrary.handleSetProperty(JspRuntimeLibrary.java:665)
	org.apache.jsp.Flash_jsp._jspService(org.apache.jsp.Test_jsp:78)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.reflect.InvocationTargetException
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:585)
	org.apache.jasper.runtime.JspRuntimeLibrary.handleSetProperty(JspRuntimeLibrary.java:663)
	org.apache.jsp.Flash_jsp._jspService(org.apache.jsp.Test_jsp:78)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

von dieser JSP:
Code:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String sessionId = request.getSession().getId();
String savingPoint = request.getParameter("savingPoint");
String movie = request.getParameter("movie");
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>Just testing ...</title>
    
  </head>
  
  <body>
	<jsp:useBean id="server" class="TestBean" />
	<jsp:setProperty name="server" property="sessionId" value="<%=sessionId%>" />
	<jsp:setProperty name="server" property="savingPoint" value="<%=savingPoint%>" />
	
        <ul>
	[*]<%=movie%>" 
 	[*]<jsp:getProperty name="server" property="sessionId" />" 
 	[*]<jsp:getProperty name="server" property="name" />" 
	[/list]
  </body>
</html>

Mit dieser Bean im Hintergrund:
Code:
public class TestBean {
	
	private static Hashtable sessions;
	
	public static TestBean get(String sessionId) {
		return (TestBean) sessions.get(sessionId);
	}
	
	private String savingPoint;
	
	private String currentSessionId = null;
	
	public TestBean() {
		this("");
	}
	
	public TestBean(String savingPoint) {
		this.savingPoint = savingPoint;
	}
	
	public String getSessionId() {
		return currentSessionId;
	}
	
	public void setSessionId(String sessionId) {
		this.currentSessionId = sessionId;
		sessions.put(currentSessionId, this);
	}
	
	public String getName() {
		return "Müller";
	}
	
	public String getSavingPoint() {
		return savingPoint;
	}
	
	public void setSavingPoint(String savingPoint) {
		this.savingPoint = savingPoint;
	}

}

Ich weiß nicht weiter, bitte helft mir!

mpG
Tobias
 

padde479

Bekanntes Mitglied
Hallo Tobias,

wie sieht denn bei Dir Deine web.xml-Datei aus? Vielleicht liegt da der Fehler? Kannst Du im Manager-Fenster die Anwendung starten? Oder steht da false? Wenn die Anwendung dort gestartet werden kann sollte es eigentlich keine Probleme geben.

Gruß
Padde
 

Tobias

Top Contributor
Die Hashtabe sessions in der Bean war nicht initialisiert, woraus eine NullPointerException resultierte.

mpG
Tobias
 

padde479

Bekanntes Mitglied
In der web.xml steht nur das Mapping für ein anderes Servlet, nicht für die JSP...

Das stimmt so nicht. Auch JavaServer Pages können beispielsweise ein url-mapping bekommen. Das hat Sicherheitsgründe. Dadurch ist im Query-String nicht zu erkennen, welche Technologie eingesetzt wird. Dadurch kann ein entfernter Angreifer nicht erkennen, welche Technik eingesetzt wird und wie er diese am besten angreifen kann.

MfG
P.H.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben