1

当您在编写 JSP 页面并在 Oracle OC4J 或 Application Server 下运行时遇到严重的编译错误时,您最终会在屏幕上显示以下内容:

500 内部服务器错误 OracleJSP:发生错误。请咨询您的应用程序/系统管理员以获得支持。程序员应考虑将 init-param debug_mode 设置为“true”以查看完整的异常消息。

我已经看到了关于如何/在哪里设置 debug_mode init-param 的不同建议。有什么选择?

另外,这是 Oracle 特有的,还是 JSP 标准特性?对于其他应用程序服务器,该技术有何不同?

4

3 回答 3

5

到目前为止的解决方案...

选项 1:将 debug_mode 参数添加到 OC4J global-web-application.xml

  • 该设置将应用于 OC4J 容器中的所有应用程序
  • 有关详细信息,请参阅@Mork0075 的回复(请注意,OC4J 容器名称和应用程序名称特定于为 Oracle 的 Secure Enterprise Search 启用调试的示例)

选项 2:添加到应用程序的 web.xml

  • 显然,允许更局部的变化
  • 还有其他可能有用的设置(developer_mode、encode_to_java、emit_debuginfo)

例如:

<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>oracle.jsp.runtimev2.JspServlet</servlet-class>
<init-param>
    <param-name>debug_mode</param-name>
    <param-value>true</param-value>
</init-param>
<init-param>
    <param-name>developer_mode</param-name>
    <param-value>true</param-value>
</init-param>
<init-param>
    <param-name>encode_to_java</param-name>
    <param-value>true</param-value>
</init-param>
<init-param>
    <param-name>emit_debuginfo</param-name>
    <param-value>true</param-value>
</init-param>
</servlet> 

由于这些选项是为类 oracle.jsp.runtimev2.JspServlet 设置的,因此它显然是特定于 Oracle OC4J/Application Server 安装的。

于 2009-04-08T15:45:38.577 回答
1

请转到 $ORACLE_HOME/oc4j/j2ee/OC4J_SEARCH/config/global-web-application.xml

以这种方式扩展 servlet 节点:

<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>oracle.jsp.runtimev2.JspServlet</servlet-class>
<init-param>
<param-name>debug_mode</param-name>
<param-value>true</param-value>
</init-param>

重新启动 OC4J 就可以了。也看看 $ORACLE_HOME/oc4j/j2ee/OC4J_SEARCH/application-deployments/ses_query/application.log

于 2009-03-14T10:05:59.420 回答
1

假设您使用的是 Eclipse,如果您不想经历为 jsps 配置调试的痛苦,MyEclipse 插件提供了非常好的开箱即用的 JSP 调试功能。

于 2009-03-14T15:45:38.397 回答