【问题标题】:Weblogic throws CompilationExceptionWeblogic 抛出 CompilationException
【发布时间】:2010-06-29 14:01:17
【问题描述】:
javax.servlet.ServletException: weblogic.servlet.jsp.CompilationException: Failed to compile JSP /WEB-INF/content/intro.jsp
messages.tag:2:30: The encoding specified on the page cannot be different than detected encoding for the file.
<%@ tag body-content="empty" pageEncoding="utf-8" %>
                             ^----------^

如果我删除标签文件中的 pageEncoding 属性,它会起作用。但我认为这不是一个解决方案,因为它已经在另一个 Weblogic 服务器上运行。所以问题出在我的 Weblogic 配置上。通过谷歌搜索错误,我没有找到任何东西。

有什么想法吗?我尝试在 weblogic.xml 中将编码设置为 UTF-8 以及许多我什至不记得的东西,我已经有一段时间了。

【问题讨论】:

    标签: java jsp jakarta-ee weblogic


    【解决方案1】:

    WebLogic 需要严格编码。因此,在 jsp 中的任何其他声明之前添加 页面编码标记 作为第一个声明。它为我解决了这个问题。

    发件人:

    <%@ page import="com.abc.xyz.Helperjsp"%> <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>

    收件人:

    <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <%@ page import="com.abc.xyz.Helperjsp"%>

    【讨论】:

    • 这不仅仅是重新排列这两行。实际上,这甚至不是重新排列,而更像是将该指令移到其他所有内容的最顶端。包含 pageEncoding 的 JSP 指令必须是文件中的第一个内容。这意味着您不能拥有 JSP 块、JSP 指令、JSP cmets 或在此之前的任何东西。
    【解决方案2】:

    确保 /WEB-INF/content/intro.jsp 的内容也是 UTF-8 编码的。

    【讨论】:

    • 他们是。问题在于 Weblogic 配置,而不是应用程序。
    • @Enno:它们在FTP传输到服务器主机之前还是之后正确?
    【解决方案3】:

    扩展 KarthikN 的 answer 和我自己的 comment

    必须注意,重要的一点是包含pageEncoding 的指令必须是您的JSP 页面上的第一个声明。正如我的评论所述:

    这不仅仅是重新排列这两行。实际上,这甚至不是重新排列,而更像是将该指令移到其他所有内容的最顶端。 [...] 这意味着在此之前您不能拥有 JSP 块、JSP 指令、JSP cmets 或任何东西。

    例如,如果您现有的 JSP 页面给出错误是:

    <%-- Some JSP comment --%>
    <% /* (OR) Some Java comment in JSP block */ %>
    <%@ page import="com.abc.xyz.Helperjsp"%>
    <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
    

    我误解了 KarthikN 的示例并简单地交换了两行。它没有用:

    <%-- Some JSP comment --%>
    <% /* (OR) Some Java comment in JSP block */ %>
    <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
    <%@ page import="com.abc.xyz.Helperjsp"%>
    

    当指令被置于一切之上时,它起作用了:

    <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
    <%-- Some JSP comment --%>
    <% /* (OR) Some Java comment in JSP block */ %>
    <%@ page import="com.abc.xyz.Helperjsp"%>
    

    虽然 KarthikN 的回答提到了这一点(“在 jsp 中的任何其他声明之前添加页面编码标记作为第一个声明”),但提供的示例并没有说明清楚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 2016-11-15
      • 2012-02-16
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多