[Eclipse] debugging jsp pagina's

Pagina: 1
Acties:

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 12:57
Ik had graag geweten hoe jullie jsp pagina's debuggen, ik vind het nogal vervelend wanneer er een fout optreed in een jsp pagina ,dat je een totaal nutteloze stacktrace te zien krijgt.

toen ik met netbeans werkte weet ik dat deze editor een optie had om de jsp pagina te bekijken die naar een servlet was omgezet, wat het debuggen (zoeken naar line numbers enzo) toch stuk beter maakte.

hoe gaan jullie hier te werk ?

hieronder een voorbeeld van een fout in een jsp pagina, maar niet snel op te zoeken waar nu iets verkeerd gaat:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[24/11/04 11:07:00:331 CET] 56f29e71 SystemErr     R javax.servlet.ServletException
[24/11/04 11:07:00:331 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:422)
[24/11/04 11:07:00:331 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:675)
[24/11/04 11:07:00:331 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:773)
[24/11/04 11:07:00:331 CET] 56f29e71 SystemErr     R    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
[24/11/04 11:07:00:393 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
[24/11/04 11:07:00:393 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
[24/11/04 11:07:00:393 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
[24/11/04 11:07:00:393 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
[24/11/04 11:07:00:393 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
[24/11/04 11:07:00:393 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
[24/11/04 11:07:00:393 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
[24/11/04 11:07:00:393 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:943)
[24/11/04 11:07:00:393 CET] 56f29e71 SystemErr     R    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:530)
....

"Live as if you were to die tomorrow. Learn as if you were to live forever"


Verwijderd

Verreweg de makkelijkste optie is:

-Gebruik myeclipse (download van www.myeclipseide.com) en gebruik Sun Application Server 8*

-Zet een breakpoint in je JSP

-Ga naar de pagina

-Step door de code en vind de bug

Alternatief:

Gebruik orion en zet de "debug" mode aan, alle servlet code kun je dan gewoon in de persistance dir vinden en samen met de stracktrace kun je hier ook het een en het ander uit halen.

*

Je kunt ook een andere server gebruiken die jsr045 ondersteund, maar de laatste keer dat ik keek was dat alleen SAS8. De beste server van allemaal (orion) ondersteund helaas geen jsr045)

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Er bestaat een free plugin voor eclipse die het toelaat om de gegeneerde servlet te bekijken.
Deze plugin heeft de naam Lomboz meegekregen.

Misschien heb je er wat aan?!


Overigens vind ik dit wel een redelijk zware plugin, en vind ik dat eclipse wel standaard wat meer voorzieningen voor het j2ee gebeuren mag verschaffen!

  • Vaudtje
  • Registratie: April 2002
  • Niet online
Verwijderd schreef op woensdag 24 november 2004 @ 11:25:
Verreweg de makkelijkste optie is:
-Gebruik myeclipse (download van www.myeclipseide.com)
Eensch. Zonder MyEclipse is geen zinnige J2EE mogelijk, IMHO.
en gebruik Sun Application Server 8*

Je kunt ook een andere server gebruiken die jsr045 ondersteund, maar de laatste keer dat ik keek was dat alleen SAS8. De beste server van allemaal (orion) ondersteund helaas geen jsr045)
Zo uit mijn hoofd ondersteunen Tomcat 5 en WebSphere 5 het ook (Daar heb ik iig met MyEclipse jsp's mee gedebugd.).
Overigens slaat Tomcat (ook versies voor 4) de servlet sources altijd op op een bereikbare plaats in je filesysteem, dan kun je ze met een file search wel vinden (gebruik veel widcards, er komen nogal veel underscores e.d. in), hoewel het een beetje omslachtig is.
WebSphere doet iets anders, daar krijg je de servlet source nooit te zien in het filesysteem voor zover ik weet

[ Voor 6% gewijzigd door Vaudtje op 24-11-2004 16:31 ]

In deeze zin staan drie fauten


Verwijderd

hoe ik het heb gedaan is als volgt:
installeer de sysdeo tomcat plugin voor eclipse
je kan dan tomcat vanuit eclipse opstarten, tot zover niks spannends.(wel handig bij het debuggen, tomcat draait dan _in_ eclipse)
maar wat je daarna ook kan doen is een nieuw tomcat project aanmaken, te vinden in de new-wizard onder het foldertje java.
maak een nieuw tomcat project, en in de package explorer view kan je dan in het package [projectnaam]/work/org.apache.jsp je gegenereerde classes zien als java code, waar je gewoon breakpoints in kan zetten, etc....

en met de tomcat 5.5.1 krijg ik dan dit soort fout meldingen in m'n browser:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it 
from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 1 in the jsp file: /index.jsp
Generated servlet error:
Syntax error, insert ";" to complete Statement


    org.apache.jasper.compiler.DefaultErrorHandler.javacError 
                                                (DefaultErrorHandler.java:84)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:382)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:280)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:259)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:247)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:544)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:296)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:302)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:246)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the
 Apache Tomcat/5.5.1 logs.

duidelijker dan die stacktrace die jij laat zien, vindt ik, maar goed, ik heb in de gauwigheid dan ook niet gezien wat voor container/versie jij gebruikt...

[ Voor 60% gewijzigd door Verwijderd op 24-11-2004 13:42 ]


Verwijderd

-FoX- schreef op woensdag 24 november 2004 @ 12:29:
Overigens vind ik dit wel een redelijk zware plugin
MyEclipse is een -nog- zwaardere plug-in. Als je deze wilt gebruiken, zeker de laatste 3.8.x branch dat moet je je geheugen voor Java omhoog gooien. 64MB heap is dan niet meer genoeg.
en vind ik dat eclipse wel standaard wat meer voorzieningen voor het j2ee gebeuren mag verschaffen!
Dat gaat ook gebeuren dmv het webtools project. Genuitech werkt hier nauw mee samen. De bedoeling is dat myeclipse zich meer op de toegevoegde J2EE dingen gaat richten (hibernate, struts, jsf, etc) en webtools op de standaard dingen (server starten/stoppen, deployment, jsp, servlets, etc).
Vaudtje schreef op woensdag 24 november 2004 @ 12:51:
[...]

Eensch. Zonder MyEclipse is geen zinnige J2EE mogelijk, IMHO.
Inderdaad. Er zijn wel wat alternatieven voor specificieke servers, maar myeclipse blijft toch de beste goedkope oplossing. De commerciele versie van Eclipse (websphere) heeft natuurlijk wel J2EE mogelijkheden. (tenminste, vanuit de specs gelezen, zelf geen enkele ervaring mee). Ik ben eigenlijk wel beniewd waarom jij myeclipse gebruikt icm websphere. Ik dacht dat myeclipse juist het goedkope alternatief voor de commerciele eclipse was.
Overigens slaat Tomcat (ook versies voor 4) de servlet sources altijd op op een bereikbare plaats in je filesysteem, dan kun je ze met een file search wel vinden (gebruik veel widcards, er komen nogal veel underscores e.d. in)
Dit doet Orion dus ook, je moet dit alleen even apart in je config files aan zetten. De namen blijven bij Orion redelijk eenvoudig.

Verwijderd

Verwijderd schreef op woensdag 24 november 2004 @ 13:41:
MyEclipse is een -nog- zwaardere plug-in. Als je deze wilt gebruiken, zeker de laatste 3.8.x branch dat moet je je geheugen voor Java omhoog gooien. 64MB heap is dan niet meer genoeg.
klopt, 't gaat zelfs zover dat in de readme van eclipse staat dat ze minimaal 128MB aanraden, en 640KB 256MB zou dan genoeg voor iedereen moeten zijn.
zie de html file in de readme dir van je eclipse install
ik gebruik deze shortcut om eclipse op te starten met 256MB voor de VM,
code:
1
C:\eclipse\eclipse.exe -vmargs -Xmx256M


dan hoeft niet iedereen helemaal naar beneden te scrollen in de readme om het commando te vinden ;)

[ Voor 7% gewijzigd door Verwijderd op 24-11-2004 14:00 ]


  • Vaudtje
  • Registratie: April 2002
  • Niet online
Verwijderd schreef op woensdag 24 november 2004 @ 13:41:Ik ben eigenlijk wel beniewd waarom jij myeclipse gebruikt icm websphere. Ik dacht dat myeclipse juist het goedkope alternatief voor de commerciele eclipse was.
Voor mijn werk zit ik inderdaad de hele dag achter WSAD, maar voor thuisprutsen is Eclipse geweldig. MyEclipse kost geen drol, dus daarvoor hoef je het niet te laten.
Overigens zitten in Eclipse 3.x veel toffe features die nog niet in WebSphere opgenomen zijn (iig niet in WSAD 4, versie 5 is geloof ik ook nog gebaseerd op Eclipse 2 )
Dit doet Orion dus ook, je moet dit alleen even apart in je config files aan zetten. De namen blijven bij Orion redelijk eenvoudig.
Het is bij Tomcat nou ook weer niet zo dramatisch, maar hij maakt er iets van "ruqwo1yy_mijnjsp_jsp_servlet.java" van, waardoor je een beetje harder moet zoeken.

In deeze zin staan drie fauten

Pagina: 1