it-swarm-eu.dev

Jak mohu ladit JSP?

Snažím se upravit JSP pro projekt a získám NullPointerException někde v JSP, když je to vyžadováno od mého serveru.

Můj webový server (JBoss) hlásí výjimku, ale dává mi falešné číslo řádku. Je to hlášení, že výjimka se stala na řádku 702, ale můj JSP je dlouhý pouze 146 řádků, takže nedokážu zjistit, která linka se dusí.

Jaké jsou dobré techniky pro ladění chyb v JSP? Jako IDE používám IntelliJ 9 Ultimate.

Dík

28
ampersandre

Existuje několik možností, které vám mohou pomoci:

  1. Tato odpověď ve skutečnosti vysvětluje, jak konkrétně ladit JSP: https://stackoverflow.com/questions/33739/jsp-debugging-in-intellij-idea . Nikdy jsem to nezkoušel, takže jsem používal další tři návrhy, když jsem používal JSP, JBoss a IntelliJ ...

  2. Nezapomeňte, že JSP jsou kompilovány do tříd. Když řekne řádek 702, znamená to ve kompilované třídě. Pokud máte test.jsp, název třídy je pravděpodobně test_jsp, otevřete tedy pracovní adresář JBoss a vyhledejte test_jsp.Java (jakmile najdete správný adresář, uvidíte, že se struktura adresářů shoduje s vaší adresářovou strukturou JSP). Kdykoli jsem měl výjimku JSP, mohl jsem najít linii docela snadno a obvykle ji přizpůsobit odpovídající linii v JSP.

  3. Body přerušení fungují dobře v Java třídách nazývaných z JSP. Takže možná můžete přesunout Java kód skriptu, který máte ve svém JSP, do třídy a ladění od vstupního bodu. V budoucnu si také můžete zvyknout na přeuspořádání své logiky tak, že většina z toho bude ve třídě, která je volaná z JSP, a JSP je jednoduchá, přímá a doufejme, že nevyhazuje žádné výjimky.

  4. Ještě lepší je odstranit všechny (nebo prakticky všechny) Java logika do Java tříd, ponechání JSP pro HTML a JSP značky). Vím, že to není možné pryč, ale opět je dobré se dlouhodobě vyhýbat problémům, jako je tento.

30
Nicole