郁闷的环境差异问题。
问题起因是cmf测试环境中的邮件编辑页面在生成问卷时,页面没反应。
本来以为是简单的前台JavaScript问题,经调试发现后台java代码在组合xsl模板文件和问卷内容,生成格式化的问卷内容时报空指针异常,返回到前台为空值。
简化了的出错代码为:
javax.xml.transform.TransformerFactory tf = javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer trans = tf.newTransformer(new javax.xml.transform.stream.StreamSource (templateIS));
其中templateIS是一FileInputStream,取自模板文件,经检查该文件在服务器中存在。
trans期望返回一Transformer实例,但在cmf测试环境中始终返回null,所以后续操作无法进行。
这个现象在上海和深圳办公室的WebSphere上均不能重现。
为方便调试和简化问题,将该代码从问卷代码中抽取到一随Web容器启动而启动的Servlet中,现象一致,故问题与问卷业务逻辑无关。
同时将同样的代码置于一独立的Java main函数中,通过命令行的方式在cmf测试环境执行,结果正确。
经验证命令行方式和WebSphere用的jre均为IBM的J2RE 1.5.0,故怀疑由于它们采用的实现jar包不一致导致结果不一致。
分析TransformerFactory.newInstance()知道TransformerFactory有多种实现,常用的是来自xalan的org.apache.xalan.processor.TransformerFactoryImpl。
在上海办公室手工编译xalan的java包,在TransformerFactoryImpl的newInstance()方法中加入调试信息,以确保该jar包被调用。在WebSphere上测试通过,结果正常。
将该jar包放到cmf测试环境的WebSphere的jar包搜索路径中,经测试该jar包亦被调用,但问题依旧。
将该jar包及其编译时所依赖的jar包都放到cmf测试环境的WebSphere的jar包搜索路径中,经测试该jar包被调用,问题解决。
该问题困扰我们好几天,猫焦火辣的。是以为记。
分享到:
相关推荐
WebSphere MQ 8.0 自带的 JAR 包是一组关键组件,它们构成了 IBM 的消息中间件解决方案,用于在不同应用程序之间可靠地传递数据。这些 JAR 文件位于 `WebSphere MQ\java\lib` 目录下,是开发、配置和运行与 ...
标题中的“websphere缓存java调用以及jar包”指的是在IBM WebSphere Application Server (WAS) 中使用Java编程方式来管理和操作缓存系统。WebSphere应用服务器提供了一种高效的方式来存储和检索频繁访问的数据,以...
在websphere8.5 下部署含有CXFwebservice的war包无法正常启动,...归根结底原因不是找不到类,而是发布后war下的jar与websphere自身平台下的jar冲突了,要解决此问题就要通过在websphere下建立共享库来根除,可参考附件
解决 WebSphere 中的 jar 包冲突问题 在大型 Java 软件开发中,jar 包冲突问题是一个常见的问题,系统开发人员经常会为解决类似的问题耗费大量的时间进行调试和测试。为了解决这个问题,本文将从 WebSphere 中类...
在深入探讨WebSphere环境下所有JAR文件名与路径之前,我们先来理解一下WebSphere及其在企业级应用服务器中的重要性。WebSphere Application Server(WAS)是IBM提供的一款高性能、高可靠性的企业级Java应用服务器,...
com.ibm.mq.commonservices-1.0、com.ibm.mq.defaultconfig-1.0、com.ibm.mq.headers-1.0.jar、com.ibm.mq.jmqi-1.0.jar、com.ibm.mq.soap-1.0.jar、com.ibm.mqjms-1.0.jar、jms-1.3.1_02.jar、providerutil-1.2.jar...
IBM WebSphere MQ java代码依赖的jar包.
在Java开发环境中,与IBM WebSphere MQ进行交互通常需要使用特定的Java API,即MQ JAR文件。"IBM WebSphere MQ V7 jar" 指的是版本7的WebSphere MQ对应的Java API库。 在描述中提到的“java连接MQ操作Queue数据所需...
Java连接IBM WebSphere MQ 7处理队列信息所需jar包,从安装目录直接打的包。主要包括: /com.ibm.mq.commonservices.jar /com.ibm.mq.defaultconfig.jar /com.ibm.mq.fta.jar /com.ibm.mq.headers.jar /...
在描述中提到的"所有jar"意味着这个压缩包包含了运行Websphere MQ 7.5所需的所有Java类库,这对于那些无法直接从客户端拷贝jar文件的用户来说非常便利。 Websphere MQ的核心功能包括: 1. **消息传递**:MQ提供了...
针对“shiro1.3.2相关jar(解决Websphere下项目变慢问题)”的标题和描述,我们可以分析以下几个关键知识点: 1. **Apache Shiro**:Shiro是一个轻量级的安全框架,用于处理身份验证(登录)、授权(权限控制)、会话...
### WEBSPHERE乱码问题的解决与处理 在IT领域中,尤其是对于使用IBM WebSphere作为应用服务器的企业来说,遇到中文乱码的问题是一件非常头疼的事情。这类问题往往会影响到业务的正常运行,降低用户体验,因此及时...
WebSphere_MQ_V7.0.1.3 安装目录下\java\doc;\java\lib;\java\lib64. 包含com.ibm.mq.jar,com.ibm.mq.jmqi.jar,com.ibm.mq.axis2.jar,com.ibm.mq.commonservices.jar等等
在企业级应用开发与部署的过程中,经常会遇到各种技术挑战,其中之一就是在WebSphere Application Server (WAS) 上部署应用程序时遇到的JAR包冲突问题。这种冲突通常发生在不同组件或者库之间对相同JAR的不同版本有...
jar 包冲突问题是在大型应用项目的开发中经常遇到的问题,它是由于不同的应用程序使用相同的共享 jar 包,但是这些 jar 包的版本不同所造成的。为了解决这个问题,我们需要了解 WAS 中类加载器的工作机制。 WAS 中...
在IT行业中,WebSphere Application Server(简称WebSphere)是一款由IBM开发的企业级应用服务器,它为企业提供了一个强大的运行环境来部署、管理和运行Java应用程序和服务。SQL Server 2000则是微软公司推出的一款...