# Servlet Exception - missing }



## AndiArt (23. Apr 2008)

Hallo,

meine JSP-Seite funktioniert nicht. Es gibt folgende Exception:

root cause 

javax.servlet.ServletException: Unresolved compilation problem: 
	Syntax error, insert "}" to complete MethodBody

	at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
	at org.apache.jsp.Raumreservierung_1_jsp._jspService(Raumreservierung_1_jsp.java:1227)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:619)

Diese Exception weisen dabei in meinem Servlet auf die Exceptionbehandlung der Seite. Ich habe auch schon die gesamte Seite in einen try-catch-Block eingefasst, um vielleicht eine unbemerkte Exception abzufangen. Es ergab aber nichts anderes.  Auch die Klammern habe ich durchgezählt. Sie scheinen in Ordnung.

Woran kann es noch liegen?

Andreas


----------



## ms (23. Apr 2008)

An einer fehlende Klammer?
Zeig mal die JSP.

ms


----------



## maki (23. Apr 2008)

Hat da etwa jemand Java und JSP Tags vermischt? *g*


----------



## AndiArt (23. Apr 2008)

ms hat gesagt.:
			
		

> An einer fehlende Klammer?
> Zeig mal die JSP.
> 
> ms



Die Seite ist 1000 Zeilen lang. Aber das generierte Servlet wird ja übersetzt. Das wundert mich.


----------



## maki (23. Apr 2008)

Übersetzen ist nicht das Problem, kompilieren schon.

JSP mit 1000 Zeilen?
Autsch, wer macht denn so etwas?


----------



## AndiArt (23. Apr 2008)

Achso. Es wird auch kompilert komischerweise.

Ich habe das Projekt nur übernommen. Kann nichts dafür


----------



## ms (23. Apr 2008)

AndiArt hat gesagt.:
			
		

> Ich habe das Projekt nur übernommen. Kann nichts dafür


Ja Ja ... 

ms


----------



## maki (23. Apr 2008)

> Ich habe das Projekt nur übernommen. Kann nichts dafür icon_smile.gif


Das glaube ich gerne, hatte ähhnliche schlimme Fälle, aber nicht gnaz so extrem.

2 Möglichkeiten:
1. Komplettes redesign
2. Änderung irgendwie zum laufen bekommen und dann das weite suchen

Bis jetzt war es bei mir immer Option 2, Option 1 wollte keiner zahlen ("läuft doch").


DU findest also die JSP als class Datei wieder?

Nachtrag: Letze Frage bitte ignorieren, "unresolved compiliation problem" ist ziemlich eindeutig


----------



## AndiArt (23. Apr 2008)

maki hat gesagt.:
			
		

> DU findest also die JSP als class Datei wieder?
> 
> Nachtrag: Letze Frage bitte ignorieren, "unresolved compiliation problem" ist ziemlich eindeutig



Nee wirklich. Die ist immer neu da.


----------



## maki (23. Apr 2008)

Fakt ist, die JSP kann nicht kompiliert werden, wegen einem Syntax error: Missing }

Bleibt wohl nix anderes übrig als die { und } in der JSP zu zählen und herauszufinden, wo das  } fehlt.


----------



## AndiArt (23. Apr 2008)

Hab ich gezählt. Kein Irrtum möglich, es stimmt alles mit den Klammern.


----------



## maki (23. Apr 2008)

Vielleicht wird  eine } nicht "geprinted" wegen einer kondition?


----------



## AndiArt (23. Apr 2008)

Leider auch nicht


----------



## maki (23. Apr 2008)

Dann ist die } an der falschen stelle.


----------



## ms (23. Apr 2008)

Mach die generierte Java-Datei in zB Eclipse auf, dann tust du dir leichter.

ms


----------



## AndiArt (23. Apr 2008)

Leider auch nicht und es sind auch alle Semikolons da.


----------



## maki (23. Apr 2008)

> Syntax error, insert "}" to complete MethodBody
> 
> at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
> at org.apache.jsp.Raumreservierung_1_jsp._jspService(Raumreservierung_1_jsp.java:1227)


Wie ms vorschlug, öffne das erstellte Servlet in Eclipse, sieh dir die Zeile 1227 an (oder in der nähe) und versuche dir vorzustellen wo in der JSP der Fehler vorkommt.


----------



## AndiArt (23. Apr 2008)

Danke, hab ich gemacht und Klammeranalyse auch, aber es scheint alles in Ordnung.

Kann es nicht sein, dass es gar nicht an den Klammern liegt, sondern woanders dran, weil er gerade bei der pageException meckert?


----------



## HLX (23. Apr 2008)

Zur Eingrenzung könntest du versuchen Code-Blöcke aus der JSP-Seite zu entfernen und schauen, ob der Fehler dann immer noch auftritt.


----------



## maki (23. Apr 2008)

"unresolved compilation problem"

IOrgendwo ist ein Fehler, die fehlende } ist bisher der beste Hinweis.

Einer der Gründe warum JAVA in JSPs schlecht ist, sehr schlecht.


----------

