MyEclipse 开发 SSH 应用中的两个常见错误的解决方法

MyEclipse 开发 SSH 应用中的两个常见错误的解决方法

关键字: ssh 解决方法

关于MyEclipse 6.0.0 GA开发SSH应用的
Error Creating SessionFactory java.lang.SecurityException: class"org.apache.commons.collections.SequencedHashMap"'异常的解决方案

昨天有读者提到用 MyEclipse 6.0.0 开发 Struts + Hibernate应用的时候,单独测试Hibernate的类没有问题,但是当Web层和Struts整合后,就抛出如下异常:
        %%%%Error Creating SessionFactory %%%%  java.lang.SecurityException: class"org.apache.commons.collections.SequencedHashMap"'s signer informationdoes not match signer information of other classes in the same package
        因为我用的6.0.1,所以怎么也没出现这个异常。后来Google搜到很多人遇到了这个故障,猜测是commons-collections.jar的问题,可能和MyEclipse 6.0.0自带的包有问题导致。例如下面的是一个解决方案:http://ttitfly.javaeye.com/blog/131955
        
        解决方案:
        1)下载 MyEclipse 6.0.1 来开发;
        2)或者去http://commons.apache.org/collections/ 下载一个新的包,把原来的commons-collections-xxx.jar给删了,然后用新的包替换。注意:一定要到应用的发布目录去做这个工作,而且替换后不能重新发布应用,然后立即重启Tomcat再测试。
        
        如果再报下面的错误:
Java代码 复制代码
  1. ERROR [org.hibernate.proxy.BasicLazyInitializer] - CGLIB Enhancement failed: dao.User    
  2. java.lang.NoSuchMethodError:org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V   
  3. at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)   
ERROR [org.hibernate.proxy.BasicLazyInitializer] - CGLIB Enhancement failed: dao.User 
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) 

则是:
Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar即可



MyEclipse 开发 SSH 整合时 java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit 解决方案

这篇文章解决了问题, 核心提示:
        2007-08-08 发现用 MyEclipse 5.5 做 Struts 1.2 + Spring 2.0 + Hibernate 3.1 整合时启动过程中报如下的错误:
                       
2007-08-08 15:36:17,406 ERROR [org.hibernate.proxy.BasicLazyInitializer] - CGLIB Enhancement failed: dao.User
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)
        Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar 然后重启 Tomcat.
        asm-2.2.3.jar
       asm.jar
       asm-attrs.jar
      asm-commons-2.2.3.jar
      asm-util-2.2.3.jar
                       
       
        原文参考: http://heweiya.javaeye.com/blog/101575
                       
下面是一个完整的出错信息:
      
Java代码 复制代码
  1.  2007-10-7 10:44:42 org.apache.catalina.core.StandardContext listenerStart   
  2. 严重: Exception sending context initialized event to listenerinstance of class org.springframework.web.context.ContextLoaderListener   
  3. org.springframework.beans.factory.BeanCreationException: Errorcreating bean with name 'entityManagerFactory' defined inServletContext resource [/WEB-INF/classes/applicationContext.xml]:Invocation of init method failed; nested exception isjava.lang.ExceptionInInitializerError   
  4. Caused by: java.lang.ExceptionInInitializerError   
  5.     at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)   
  6.     at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)   
  7.     at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)   
  8.     at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)   
  9.     at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)   
  10.     at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)   
  11.     at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:295)   
  12.     at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)   
  13.     at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)   
  14.     at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)   
  15.     at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)   
  16.     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)   
  17.     at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)   
  18.     at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:730)   
  19.     at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)   
  20.     at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)   
  21. atorg.springframework.orm.jpa.LocalEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalEntityManagerFactoryBean.java:91)   
  22.     at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:251)   
  23. atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1202)   
  24. atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)   
  25. atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:428)   
  26.     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)   
  27.     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)   
  28.     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)   
  29.     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)   
  30. atorg.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)   
  31.     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)   
  32.     at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)   
  33.     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)   
  34.     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)   
  35.     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)   
  36.     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)   
  37.     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)   
  38.     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)   
  39.     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)   
  40.     at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)   
  41.     at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)   
  42.     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)   
  43.     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)   
  44.     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)   
  45.     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)   
  46.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)   
  47.     at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)   
  48.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)   
  49.     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)   
  50.     at org.apache.catalina.core.StandardService.start(StandardService.java:516)   
  51.     at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)   
  52.     at org.apache.catalina.startup.Catalina.start(Catalina.java:566)   
  53.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   
  54.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)   
  55.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)   
  56.     at java.lang.reflect.Method.invoke(Unknown Source)   
  57.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)   
  58.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)   
  59. Caused by: java.lang.SecurityException: class"org.objectweb.asm.CodeVisitor"'s signer information does not matchsigner information of other classes in the same package  
  60.     at java.lang.ClassLoader.checkCerts(Unknown Source)   
  61.     at java.lang.ClassLoader.preDefineClass(Unknown Source)   
  62.     at java.lang.ClassLoader.defineClass(Unknown Source)   
  63.     at java.security.SecureClassLoader.defineClass(Unknown Source)   
  64.     at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)   
  65.     at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)   
  66.     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)   
  67.     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)   
  68.     at java.lang.ClassLoader.loadClassInternal(Unknown Source)   
  69.     at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:165)   
  70.     at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)   
  71.     at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)   
  72.     at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)   
  73.     at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)   
  74.     at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)   
  75.     at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)   
  76.     at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)   
  77.     ... 54 more   
  78. 2007-10-7 10:44:42 org.apache.catalina.core.StandardContext start   
  79. 严重: Error listenerStart   
  80. 2007-10-7 10:44:42 org.apache.catalina.core.StandardContext start   
  81. 严重: Context [/d1] startup failed due to previous errors   
  82. 2007-10-7 10:44:42 org.apache.catalina.core.ApplicationContext log   
  83. 信息: Closing Spring root WebApplicationContext   
  84. 2007-10-7 10:44:42 org.apache.catalina.loader.WebappClassLoader loadClass   
  85. 信息: Illegal access: this web application instance has been stoppedalready. Could not load java.net.BindException. The eventual followingstack trace is caused by an error thrown for debugging purposes as wellas to attempt to terminate the thread which caused the illegal access,and has no functional impact.   
  86. java.lang.IllegalStateException   
  87.     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1244)   
  88.     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)   
  89.     at java.lang.ClassLoader.loadClassInternal(Unknown Source)   
  90.     at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:155)   
  91.     at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2652)   
  92.     at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1345)   
  93.     at com.mysql.jdbc.Connection.realClose(Connection.java:4731)   
  94.     at com.mysql.jdbc.Connection.cleanup(Connection.java:2034)   
  95.     at com.mysql.jdbc.Connection.finalize(Connection.java:3244)   
  96.     at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)   
  97.     at java.lang.ref.Finalizer.runFinalizer(Unknown Source)   
  98.     at java.lang.ref.Finalizer.access$100(Unknown Source)   
  99.     at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)   
  100. 2007-10-7 10:44:42 org.apache.catalina.loader.WebappClassLoader loadClass   
  101. 信息: Illegal access: this web application instance has been stoppedalready. Could not load com.mysql.jdbc.Messages. The eventual followingstack trace is caused by an error thrown for debugging purposes as wellas to attempt to terminate the thread which caused the illegal access,and has no functional impact.   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值