您的位置:程序门 -> websphere ->



求助:请问各位高手在 websphere 下发布问题!!!!急!!!!!!!!!!!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求助:请问各位高手在 websphere 下发布问题!!!!急!!!!!!!!!!!![已结贴,结贴人:wenm_owen]
发表于:2007-10-04 18:08:43 楼主
我们公司开发了一个新项目,为   hibernate   +   spring   +   struts   结构,数据库为   oracle   !   在   eclipse   下打成   war   包后,发布到   tomcat   5.0   下,没有一点问题,任何页面都可以打开,也可以正常工作,但将   war   包发布至   websphere   下后,出现一些页面不能打开的情况,找了   systemout.log   日志,   发现抛出如下异常:

[07-10-4   17:54:34:666   hkt]   0000002b   webapp                 e       srve0026e:   [servlet   错误]-[action]:java.lang.nosuchmethoderror:   antlr.collections.ast:   method   getline()i   not   found
at   org.hibernate.hql.ast.hqlsqlwalker.generatepositionalparameter(hqlsqlwalker.java:666)
at   org.hibernate.hql.antlr.hqlsqlbasewalker.parameter(hqlsqlbasewalker.java:4552)
at   org.hibernate.hql.antlr.hqlsqlbasewalker.expr(hqlsqlbasewalker.java:1296)
at   org.hibernate.hql.antlr.hqlsqlbasewalker.exprorsubquery(hqlsqlbasewalker.java:4024)
at   org.hibernate.hql.antlr.hqlsqlbasewalker.comparisonexpr(hqlsqlbasewalker.java:3504)
at   org.hibernate.hql.antlr.hqlsqlbasewalker.logicalexpr(hqlsqlbasewalker.java:1760)
at   org.hibernate.hql.antlr.hqlsqlbasewalker.whereclause(hqlsqlbasewalker.java:778)
at   org.hibernate.hql.antlr.hqlsqlbasewalker.query(hqlsqlbasewalker.java:579)
at   org.hibernate.hql.antlr.hqlsqlbasewalker.selectstatement(hqlsqlbasewalker.java:283)
at   org.hibernate.hql.antlr.hqlsqlbasewalker.statement(hqlsqlbasewalker.java:231)
at   org.hibernate.hql.ast.querytranslatorimpl.analyze(querytranslatorimpl.java:214)
at   org.hibernate.hql.ast.querytranslatorimpl.docompile(querytranslatorimpl.java:154)
at   org.hibernate.hql.ast.querytranslatorimpl.compile(querytranslatorimpl.java:101)
at   org.hibernate.impl.sessionfactoryimpl.getquery(sessionfactoryimpl.java:473)
at   org.hibernate.impl.sessionimpl.getqueries(sessionimpl.java:1032)
at   org.hibernate.impl.sessionimpl.list(sessionimpl.java:982)
at   org.hibernate.impl.queryimpl.list(queryimpl.java:74)
at   com.fortuneduck.ic.dao.operationdaoimpl.get(operationdaoimpl.java:119)
at   com.fortuneduck.ic.bdo.module.operationbdoimpl.get(operationbdoimpl.java:57)
at   com.fortuneduck.ic.action.module.getpagetitleaction.doours(getpagetitleaction.java:31)
at   com.fortuneduck.ic.action.baseaction.EXECute(baseaction.java:120)
at   org.springframework.web.struts.delegatingactionproxy.EXECute(delegatingactionproxy.java:106)
at   org.apache.struts.action.requestprocessor.processactionperform(requestprocessor.java:431)
at   com.fortuneduck.ic.action.ourrequestprocessor.process(ourrequestprocessor.java:120)
at   org.apache.struts.action.actionservlet.process(actionservlet.java:1196)
at   org.apache.struts.action.actionservlet.doget(actionservlet.java:414)
at   javax.servlet.http.httpservlet.service(httpservlet.java:743)
at   javax.servlet.http.httpservlet.service(httpservlet.java:856)
at   com.ibm.ws.webcontainer.servlet.servletwrapper.service(servletwrapper.java:1212)
at   com.ibm.ws.webcontainer.servlet.servletwrapper.handlerequest(servletwrapper.java:629)
at   com.ibm.ws.webcontainer.webapp.webapp.handlerequest(webapp.java:2841)
at   com.ibm.ws.webcontainer.webapp.webgroup.handlerequest(webgroup.java:220)
at   com.ibm.ws.webcontainer.virtualhost.handlerequest(virtualhost.java:204)
at   com.ibm.ws.webcontainer.webcontainer.handlerequest(webcontainer.java:1681)
at   com.ibm.ws.webcontainer.channel.wcchannellink.ready(wcchannellink.java:77)
at   com.ibm.ws.http.channel.inbound.impl.httpinboundlink.handlediscrimination(httpinboundlink.java:421)
at   com.ibm.ws.http.channel.inbound.impl.httpinboundlink.handlenewinformation(httpinboundlink.java:367)
at   com.ibm.ws.http.channel.inbound.impl.httpiclreadcallback.complete(httpiclreadcallback.java:94)
at   com.ibm.ws.tcp.channel.impl.workqueuemanager.requestcomplete(workqueuemanager.java:548)
at   com.ibm.ws.tcp.channel.impl.workqueuemanager.attemptio(workqueuemanager.java:601)
at   com.ibm.ws.tcp.channel.impl.workqueuemanager.workerrun(workqueuemanager.java:934)
at   com.ibm.ws.tcp.channel.impl.workqueuemanager$worker.run(workqueuemanager.java:1021)
at   com.ibm.ws.util.threadpool$worker.run(threadpool.java:1332)


在此请教各位   websphere   高手,如何解决该问题,小弟不胜感激!!非常感谢   !!!!!!!
发表于:2007-10-05 17:45:151楼 得分:0
没人回答??
发表于:2007-10-08 10:27:072楼 得分:0
各位,   帮帮忙啊,有知道的请回帖,非常感谢!!!!
发表于:2007-10-08 11:23:523楼 得分:0
你要看一看was的哪个包中有类ast,看看它提供的方法,应该是没有getline()方法,默认情况下was的包是先加载,正好有一个全限名一样的,然而它的版本不一致就会出错。
可以试着把你的应用的类的加载方式改为parent_last,自己应用中的包先加载
发表于:2007-10-09 10:12:284楼 得分:0
请问楼上的兄弟,如何改成   parent_last   方式加载??
发表于:2007-10-09 10:27:565楼 得分:0
确认
selected   application-> class   loader   mode-> parent   last
selected   application-> war   class   loader   policy-> module
发表于:2007-10-09 11:33:296楼 得分:0
哈哈...楼上的兄弟,   启用类重新装入   的勾也要打上,界面可以出来了,非常感谢!!不过还需要测试,不知道功能可不可用,继续解决中......非常感谢楼上的!!!!!
还问一下,能解释一下这么做是什么意思吗?还有   启用类重新装入   打上勾与没打勾   有什么区别吗?
发表于:2007-10-09 12:37:397楼 得分:20
websphere有的class   loader有4层,从上到下依次是
1,java的核心基本类class   loader
2,websphere的核心基本类class   loader
3,application   class   loader---application   server   level
4,war   class   loader   ---application   level

基本的原则是parentfrist,即请求的类要从最顶上找,找到了就不再向下找了。
这样做的原因是安全和发布考虑,如果没有这样机制,试想如果你在应用程序里面创建一个同包同名的websphere的核心基本类,岂不是可以改变的websohere的功能。

1,2默认是parentfrist,不可改变。3,4是可以控制的,可以是parentfrist或parentlist,即先在application   class   loader里找,还是先在war   class   loader。
所以可能的解释只能是1,2,3中含有同包同名类,但没有对应的方法。

为了确认准确的原因,告诉我antlr.collections.ast对应的jar你是怎么导入的?
发表于:2007-10-09 14:17:188楼 得分:0
就是放在   web-inf/lib   下面啊
这个包已经被我删除了,我发现引用了这个包还是不行,
因为原来有两个同档功能的包存在   antlr-2.7.5h3.jar   和   antlr.jar    
所以   当我   删除     antlr.jar   后,既可以成功了!!     呵呵...
功能也正常了,因为我们用的   websphere   6.0   ,而它用的   jdk1.4   ,   我先前是用   1.5   编绎的,所以有些功能不能正常使用,后来改为   1.4   编绎后,所有均正常了!!!
非常感谢你!!!  
发表于:2007-10-09 14:46:239楼 得分:0
兄弟,留个   msn   以后多多交流交流!!
我的:   wenm2005@gmail.com


快速检索

最新资讯
热门点击