编译JSP Java(* __ jsp.java)文件在哪里?
我在我的网站试图渲染的一个jsp文件中获得了javax.servlet.jsp.JspException
( survey.jsp
)。 但是,堆栈跟踪没有给出jsp中失败的特定行,而是它失败的行号( survey_jsp.java:787
),它似乎是已编译的JSP文件。 我在哪里可以找到这样的文件,以便我知道抛出此exception的行是什么?
谢谢
编辑:如果你正在使用tomcat,这些文件存在于/work
目录中,如下面的评论所示。
默认情况下,已编译的JSP文件位于Tomcat环境的/work
文件夹中。 应该有一个子文件夹Catalina
,后者又有一个子文件夹,代表默认为localhost
的域名。 反过来应该是项目文件夹,该文件夹又包含包层次结构org.apache.jsp
,其中包含已编译的JSP文件。
Tomcat |-- backup |-- bin |-- conf |-- lib |-- logs |-- temp |-- webapps `-- work `-- Catalina `-- localhost `-- projectname `-- org `-- apache `-- jsp |-- survey_jsp.class `-- survey_jsp.java <--- here
与具体问题无关 ,在JspException
应该有一个根本原因部分,它通常包含有关问题真正根本原因的更多细节。 在堆栈跟踪中进一步阅读。 那么,您是否知道将原始Java代码放在JSP文件中被认为是一种不好的做法 ? 正如您现在遇到的那样,它使问题更难调试。
如果页面没有编译,你应该在
下面找到它。 完整路径取决于您的环境。 如果你在那里找不到它,你应该在调试模式下启动你的Tomcat,它肯定会使.java
文件无法编译(Tomcat 7)。
我正在使用Intellij
来学习JavaEE,为了在jsp转换为servlet时查看一些function,我还必须找到该文件。
我没有在
下面找到它。 我终于发现该文件位于~/.IntelliJIdea15/system/tomcat/
文件夹下(树形结构显示来自~/.IntelliJIdea15/system/tomcat/
)!
Name related to project name |-- conf |-- logs `-- work `-- Catalina `-- localhost `-- projectname and type `-- org `-- apache `-- jsp |-- survey_jsp.class `-- survey_jsp.java <--- here
如果您仍然无法在Intellij的主文件夹下找到它,您可能需要尝试使用
find . | grep 'nameOfYourJsp_jsp.java'
在合适的父文件夹中。
在我的情况下,编译的jsps在
/var |--cache |-- tomcat8 |--Catalina |--localhost |--projectname |-- (etc...)
来自oracle文档
javax.servlet.jsp.JspException :: JSP引擎已知的一般exception; 未捕获的JspExceptions将导致调用errorpage机制。
每当我在代码中使用scriplets时,我甚至习惯了这个
我的建议:不要使用脚本,即使它看起来似乎很容易开发代码,但在所有应有的方面,它是一个很大的头 – 难以维护一个scriplets代码。 相信我
C:\用户\ ADMIN \日食workspace.metadata.plugins \ org.eclipse.wst.server.core \ TMP0 \工作\卡塔利娜\本地主机\ JspDemo \组织\阿帕奇\ JSP
根据您的项目名称更改链接。