卡了一下午仍没找到问题所在

本文记录了在Tomcat环境下部署SWT内嵌Browser应用时遇到的XULRunner路径未被正确识别的问题及解决尝试。作者尝试了多种方法,包括在代码中直接获取XULRunner路径和设置系统属性,但问题仍未解决。

最近定制swt内嵌的Browser来抓数据,工作基本完成。到了最后,一个问题却卡了一下午没有头绪。

当把整个工程部署在Tomcat下跑,结果却出现异常:

写道
org.eclipse.swt.SWTError: Unable to load library (java.io.FileNotFound
Exception: GRE not found)

 这是XULRunner找不到所发出的异常。

但是我的xulrunner放在c:\xulrunner下,并且已经注册成功,在Eclipse工程下跑生成的script通过。

于是使用WTP来Debug我的Web工程,Debug过程居然xulrunner找到,并且运行正常。

于是再一次启动tomcat,把Debug的时候部署的工程跑一下,结果还是失败。

但在Eclipse下的Sever来启动tomcat,居然运行正常。

于是写了一段程序看是否能够得到xulrunner的path:

 

import java.io.File;
import java.io.FileNotFoundException;

import org.mozilla.xpcom.GREVersionRange;
import org.mozilla.xpcom.Mozilla;

public class XulRunnerTest {
	public static void main(String[] args) {
		GREVersionRange[] range = new GREVersionRange[1];
		range[0] = new GREVersionRange("1.7.*", false, "1.8.*", true);
		try {
			File grePath = Mozilla.getGREPathWithProperties(range, null);
			System.out.println(grePath);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
}
 

 结果成功得到xulrunner的path:c:\xulrunner

于是在Servlet初始化的时候把这段代码放过去,看是在不用Eclipse下面的Server启动Tomcat是否能成功:

public void init() throws ServletException { 
		super.init();
		GREVersionRange[] range = new GREVersionRange[1];
		range[0] = new GREVersionRange("1.7.*", false, "1.8.*", true);
		try {
			File grePath = Mozilla.getGREPathWithProperties(range, null);
			logger.debug(grePath);
		} catch (FileNotFoundException e) {
			logger.debug(e.getMessage());
		}
	}

 结果log中得到输出:GRE not found.

难道是用Eclipse下面的Server启动Tomcat和正常启动tomcat环境变量不同所致?但又是哪些变量导致的?

 

最后在SWT FAQ找到:

写道
Q: Can I specify which XULRunner installation gets used?
A: Typically a Mozilla-based Browser uses XULRunner's lookup mechanism to find a registered XULRunner at runtime. If you wish to override this mechanism you can set the value of java system property org.eclipse.swt.browser.XULRunnerPath to point at the target XULRunner's path. This property must be set before the first Browser instance is created.

 在init方法中加上:

System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "C:\\xulrunner");

 结果没有任何效果, log仍然输出:GRE not found.

最后只能到博客发泄一下。。。

org.eclipse.swt.SWT.class org.eclipse.swt.SWTError.class org.eclipse.swt.SWTException.class org.eclipse.swt.accessibility.ACC.class org.eclipse.swt.accessibility.Accessible.class org.eclipse.swt.accessibility.AccessibleActionAdapter.class org.eclipse.swt.accessibility.AccessibleActionEvent.class org.eclipse.swt.accessibility.AccessibleActionListener.class org.eclipse.swt.accessibility.AccessibleAdapter.class org.eclipse.swt.accessibility.AccessibleAttributeAdapter.class org.eclipse.swt.accessibility.AccessibleAttributeEvent.class org.eclipse.swt.accessibility.AccessibleAttributeListener.class org.eclipse.swt.accessibility.AccessibleControlAdapter.class org.eclipse.swt.accessibility.AccessibleControlEvent.class org.eclipse.swt.accessibility.AccessibleControlListener.class org.eclipse.swt.accessibility.AccessibleEditableTextAdapter.class org.eclipse.swt.accessibility.AccessibleEditableTextEvent.class org.eclipse.swt.accessibility.AccessibleEditableTextListener.class org.eclipse.swt.accessibility.AccessibleEvent.class org.eclipse.swt.accessibility.AccessibleHyperlinkAdapter.class org.eclipse.swt.accessibility.AccessibleHyperlinkEvent.class org.eclipse.swt.accessibility.AccessibleHyperlinkListener.class org.eclipse.swt.accessibility.AccessibleListener.class org.eclipse.swt.accessibility.AccessibleTableAdapter.class org.eclipse.swt.accessibility.AccessibleTableCellAdapter.class org.eclipse.swt.accessibility.AccessibleTableCellEvent.class org.eclipse.swt.accessibility.AccessibleTableCellListener.class org.eclipse.swt.accessibility.AccessibleTableEvent.class org.eclipse.swt.accessibility.AccessibleTableListener.class org.eclipse.swt.accessibility.AccessibleTextAdapter.class org.eclipse.swt.accessibility.AccessibleTextAttributeEvent.class org.eclipse.swt.accessibility.AccessibleTextEvent.class org.eclipse.swt.accessibility.AccessibleTextExtendedAdapter.class org.eclipse.swt.accessibility.AccessibleTextExtendedListener.class org.eclipse.swt.accessibility.AccessibleTextListen
<think>好的,我现在需要处理用户的问题:“下1点到2点之间出现的问题原因”。用户意图是询问某个问题发生的时间段,可能涉及系统性能、网络问题或其他周期性故障。首先,要确定用户所指的具体问题类型,但问题描述中有明确说明,所以需要保持回答的通用性。 根据要求,我需要调用网络搜索工具来检索相关信息。可能的关键词包括“下1点到2点问题原因”、“每日特定时间段故障分析”、“周期性系统问题排查”等。然后整合搜索结果,生成结构化的回答。 接下来,需要分析可能的原因。根据常见的IT或系统问题,下1点到2点可能涉及间高峰流量、定时任务执行、温度变化影响硬件、备份操作或能源管理设置。例如,休时间用户活动增加可能导致服务器负载升高;定时任务可能在此时段运行,占用资源;高温时段影响设备散热;备份进程启动导致资源争用;节能设置可能在非高峰时段降低性能。 需要将这些原因分点列出,每个方法或步骤间换行,避免使用步骤词汇。同时,确保引用内容不集中在末尾,而是自然融入回答中。如果有代码或公式,需按格式处理,但此问题可能不涉及这些内容。 最后,生成相关问题部分,必须基于原回答,比如询问如何排查定时任务、高温导致故障的解决方法、如何监控间流量等。确保三个问题,格式正确,标题在同一行,无多余空格或换行。 检查是否符合所有要求:不使用第一人称,分点说明,换行分隔,相关问题正确格式。确认无误后,生成最终回答。</think>针对下1点到2点之间出现问题的潜在原因分析及排查方向如下: **1. 系统负载高峰** 间时段可能因用户活跃度上升导致服务器负载骤增。检查系统监控数据中的CPU、内存及网络流量指标是否在该时段出现峰值,例如CPU使用率超过$80\%$或网络带宽占用率达$90\%$以上 **2. 定时任务干扰** 部分系统配置的自动化任务(如数据库备份、日志清理)可能设定在13:00执行。查看crontab配置或任务调度器: ```bash crontab -l systemctl list-timers ``` **3. 环境温度影响** 13:00-14:00通常是每日温度高峰时段,可能引发硬件散热问题。检查机房温度记录与设备传感器数据,硬盘工作温度超过$50℃$或CPU温度达$80℃$时可能触发保护机制 **4. 能源管理设置** 设备若启用电能优化策略,可能在间启用节能模式。验证电源管理配置: ```powershell powercfg /query ``` **5. 第三方服务依赖** 该时段可能涉及外部API限流或服务商维护窗口。通过日志分析检查外部服务调用成功率,关注HTTP状态码如$503$、$429$等异常响应
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值