# Warum wirft der mir diese Exception?



## Tobias (20. Feb 2006)

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:

```
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:

```
<%@ 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:

```
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 (21. Feb 2006)

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 (21. Feb 2006)

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


----------



## Tobias (21. Feb 2006)

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

mpG
Tobias


----------



## padde479 (22. Feb 2006)

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


----------

