我在WAS6中部署了EAR模块时遇到问题。
支持我的应用程序中的MQ 7功能。我按照以下步骤操作:
EAR包含Web模块。当我尝试启动应用程序时,我遇到以下异常:
javax.servlet.jsp.JspException:无法从上下文获取定义工厂。 at org.apache.struts.taglib.tiles.InsertTag.processDefinitionName(InsertTag.java:575) 在org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:474) 在org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:436) at com.ibm._jsp._home._jspx_meth_tiles_insert_0(_home.java:106) 在com.ibm._jsp._home._jspService(_home.java:81)
战争包含以下罐子。
xstream-1.3.1.jar,xercesImpl.jar,xalan.jar,struts.jar,standard.jar,commons-validator.jar,commons-net-1.4.0.jar,commons-fileupload.jar,commons -digester.jar,commons-collections.jar,commons-beanutils.jar,resolver.jar,jstl.jar,jfreechart-1.0.2.jar,jcommon-1.0.5.jar,jaxen-full.jar,jakarta-oro的.jar。
EAR包含以下Jars, com.ibm.mqjms.jar,com.ibm.mq.jmqi.jar,com.ibm.mq.jar,com.ibm.mq.headers.jar,com.ibm.mq.commonservices.jar,log4j.jar, dhbcore.jar。
我使用log4j.jar在WAR的Manifest文件中设置了class-path属性
请有人建议我Websphere的类加载策略如何适用于我出错的地方。
KARTHIK
答案 0 :(得分:0)
前段时间我做了类似的事情。我想使用已在WebSphere Application Server中使用的特定版本的库。这就是为什么必须将库放在EAR文件中并将应用程序服务器设置为PARENT_LAST类加载器顺序的原因。
如果我错了,请纠正我,但您还必须在WAR文件的Manifest中指定自定义MQ客户端库。你刚才提到了Log4J。应该看起来像这样:
Class-Path: com.ibm.mqjms.jar com.ibm.mq.jmqi.jar [...] log4j.jar
无论如何,如果您登录 Integrated Solutions Console (又名管理控制台)并检查疑难解答部分。有一个类加载器查看器。只需在树中单击自己,然后检查提到的库路径以及您期望的路径。
最后,正如Dylan在他的评论中已经提到的那样:WebSphere Application Server版本6.1在2012年9月30日失去支持。:))