把原来部署在win下的resin服务器转到debian平台,
架设好环境后发现运行resin抱错:
500 Servlet Exception
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;
Ljava/lang/String;
[Ljava/lang/String;Ljava/lang/String;)V
at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:215)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at org.hibernate.impl.SessionFactoryImpl.<clinit>(SessionFactoryImpl.java:321)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1005)
at edu.lhq.util.HibernateUtil.currentSession(HibernateUtil.java:49)
at edu.lhq.dao.UserManagerDAO.checkUser(UserManagerDAO.java:91)
at edu.lhq.servlet.UserLogin.doPost(UserLogin.java:78)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:154)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:511)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:516)
at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
at java.lang.Thread.run(Thread.java:595)
Resin-3.0.21 (built Thu, 10 Aug 2006 12:03:19 PDT)
在经历了debian重装,resin重装,换版本还不能解决后,GG到可能是cglib包的版本问题。
去WEB-INF\lib下查看,有如下两个包:cglib-2.1.jar cglib-full-2.0.2.jar,在删除cglib-full-2.0.2.jar后问题终于得到解决。猜测可能是debian下查找包的顺序问题,其实有一个cglib-2.1.jar 包系统就可以完全正常运做了,应该是2.1的包比2.0.2的包新增加了一些方法,而resin找到了2.0.2的包,结果发现没有该方法,所以抱错。
哎。经历了n天夜车后终于可以睡个安稳觉了。
