我有一个在 websphere WAS 6.1(在 IBM RSA 下)中运行的 Web 应用程序。
它由两个 EAR组成,每个 EAR 都有一个 Web 模块(WAR)。
该应用程序有一个作为 xsl+xsql 解析结果加载的菜单。
情况是,如果我们在正常模式下启动服务器,菜单没有正确加载,但是当我们在调试模式下启动服务器时,菜单被正确加载。
有人对这里可能发生的事情有任何线索吗?
谢谢
我有一个在 websphere WAS 6.1(在 IBM RSA 下)中运行的 Web 应用程序。
它由两个 EAR组成,每个 EAR 都有一个 Web 模块(WAR)。
该应用程序有一个作为 xsl+xsql 解析结果加载的菜单。
情况是,如果我们在正常模式下启动服务器,菜单没有正确加载,但是当我们在调试模式下启动服务器时,菜单被正确加载。
有人对这里可能发生的事情有任何线索吗?
谢谢
WebSphere Application Server 对正常模式和调试模式使用不同的 XML 引擎,听起来您发现它们之间存在差异。您应该仔细检查您的代码是否遵循 javadoc(即,您没有在做未定义行为的事情),如果不是这种情况,请考虑与 IBM 一起打开 PMR 以在正常或调试模式下解决问题(它可能是调试模式也应该失败......)。或者,考虑升级到更新版本;6.1 已经很老了,您的问题可能会在产品的更高版本中得到修复。
问题解决了,
在类路径中,有一个名为 xmlparserv2.jar 的库,带有一个“有问题的”xslt 处理器(在 javax.xml.transform 基础下)。
从项目中删除它,做这件事。
现在,其他库进行 xslt 转换(在 org.apache.xalan.xslt 基础下)。
这篇文章对我帮助很大:javax.xml.transform 使用的是什么处理器?