【问题标题】:Java7/Tomcat7 64Bit - Strings not renderend in JSP pagesJava 7/Tomcat 7 64 位 - 未在 JSP 页面中呈现的字符串
【发布时间】:2013-09-20 14:29:31
【问题描述】:

我们正在使用 Java7 和 Tomcat7 64 位版本的 Windows 系统上运行 Web 应用程序。 登录 webapp 并在任意链接上点击 2-3 次后,所有应由 JSPWriter#print 方法写入的动态字符串内容不再呈现在 jsp 页面中。数字(int)仍然被渲染。

使用Java6和Tomcat6完全没有问题。使用 32Bit 版本也没有问题。 目前唯一避免这个错误的方法是,在作为服务运行时在注册表中添加tomcat的调试参数-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n,或者在从eclipse部署时传递它。

我们找不到任何错误配置。有什么建议吗?

编辑: 在 tomcat logging.properties 中将日志级别从 INFO 更改为 FINE 也可以解决问题。更改回 INFO 并立即重新启动 tomcat 会导致再次出现问题。

【问题讨论】:

  • 您的应用程序是在 64 位 JDK 中编译的吗?如果没有,请尝试并在此处更新。
  • 可能是 java7/tomcat7 互操作性中的一个错误?我会使用 java 1.6 来尝试重现该行为。此外,您应该查看字符串数据的一致性。也许您可以尝试使用硬编码字符串再次测试它。我不太确定..但也许调试选项会减慢您的代码/应用程序的速度,以便在发布时间之前定义字符串?无论如何..没有任何代码,这是一个猜谜游戏..
  • 在32Bit版本中使用Java6甚至Java7都没有问题。硬编码字符串呈现没有任何问题。它只是从 <div class="second_column"><%=ViewUtils.encodeAsHTMLEntities(tValues.getHostName())%> 等 java 对象读取的动态数据,其中 #getHostName() 只返回一个字符串,#encodeAsHTMLEntities 用 HTMP 特定编码替换字符,用 br 标签替换链接中断,并在每个(配置的)字符数之后插入不可见的换行符.所有方法都适用于 Tomcat5/6 和 Java4/5/6 多年。任何日志文件中也没有错误。
  • 另一个奇怪的问题是:我们使用枚举作为数据库列名。 public enum ORGANISATIONAL_UNIT implements IColumnDefinition, IArchiveable { ID, PARENT_ORG_UNIT_ID, ORGANISATIONAL_UNIT_NAME, ORGANISATIONAL_UNIT_KEY,.... 和 enum.toString() 方法现在也返回了 NULL,我认为这永远不会发生?!?!

标签: java 64-bit tomcat7


【解决方案1】:

这个问题没有完全回答,但问题可以缩小到我在一个新问题中描述的 Java7 64 位的特定行为:

If clause evaluated wrong in Java7_25 64Bit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多