You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Open Web Start日志出现Unknown Source错误排查求助

Open Web Start日志来源识别问题解决方案

问题现象

运行XYZ Java应用时,Open Web Start(OWS)本地日志重复出现如下错误,且错误日志中混入了应用的正常INFO日志,OWS无法正确识别这些日志的来源:

[ITW-APP ][2025-01-20 16:04:47.325 CET][ERROR][java.base/sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)] 4190 [AWT-EventQueue-1] INFO xxx.database.DBConnection - Opened JDBC connection jdbc:oracle:thin:@xx.xxx.xxx.xx:xxx:xxxx in xxx.database.XXXConnection@xxxxx

应用通过Linux Tomcat提供的JNLP文件正常下载运行,但日志记录环节存在来源识别异常。

解决步骤

  • 在JNLP文件中明确应用标识
    在JNLP的<information>标签下添加应用名称和厂商信息,帮助OWS识别应用身份:

    <information>
      <title>XYZ Application</title>
      <vendor>你的厂商名称</vendor>
      <description>XYZ Java业务应用</description>
    </information>
    
  • 添加OWS专属日志属性
    在JNLP的<resources>标签中加入应用日志标识属性,强制OWS关联日志来源:

    <resources>
      <!-- 保留原有资源配置(如j2se、jar等) -->
      <property name="itw.logger.app.name" value="XYZ"/>
      <property name="java.util.logging.manager" value="java.util.logging.LogManager"/>
    </resources>
    
  • 规范应用日志输出方式
    确保XYZ应用使用标准Java日志API(java.util.logging.Logger)输出日志,而非直接使用System.out/System.err。输出时指定明确的日志名称,例如:

    private static final Logger logger = Logger.getLogger("XYZ.database.DBConnection");
    logger.info("Opened JDBC connection jdbc:oracle:thin:@xx.xxx.xxx.xx:xxx:xxxx in xxx.database.XXXConnection@xxxxx");
    

    标准日志API能让OWS更准确地识别日志来源和级别。

  • 验证JNLP的MIME类型
    在Linux Tomcat服务器上,确保JNLP文件的MIME类型配置为application/x-java-jnlp-file,避免OWS解析时出现异常。可在Tomcat的web.xml中添加:

    <mime-mapping>
      <extension>jnlp</extension>
      <mime-type>application/x-java-jnlp-file</mime-type>
    </mime-mapping>
    
  • 清理OWS缓存并重启应用
    打开OWS的设置界面,找到缓存管理选项,清除XYZ应用的缓存文件,然后重新通过JNLP链接启动应用,确保加载最新的配置。

内容的提问来源于stack exchange,提问作者Yedima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 20:02:40