歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下發布Java網站問題解決辦法

Linux下發布Java網站問題解決辦法

日期:2017/2/28 16:36:17   编辑:Linux教程

今天發布公司的網站出現一個棘手的問題,通過Google查詢一個鐘頭才解決,所以決定記錄解決辦法以防下次出現同樣的問題。

首先網站在本地windows下面沒有任何錯誤,但是發布到linux 下面就會報錯,第一個問題如下:

net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:237)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:126)
at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)
at org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:161)
at org.hibernate.tuple.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:131)
at org.hibernate.tuple.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)
at org.hibernate.tuple.EntityMetamodel.<init>(EntityMetamodel.java:257)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:412)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:108)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory

然後經過查找相關資料, 解決方案1: 刪除WEB-INF/lib/asm-2.2.3.jar 然後重啟 Tomcat,無效... 解決方案2: 下載asm-all-3.0.jar替換掉所有asm開頭的jar包.無效... 解決方案3: 如果在lib目錄下有2.13的版本,請更換為cglib-2.2_1.jar即可。重新發布項目.無效.... 項目中使用了ehcache做為hibernate的緩存,ehcache-1.1.jar也導入了.

接著出現如下錯誤,java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)

通過各種查詢,實驗各種方法,最後把成功的解決辦法記錄一下。因為cglib 包和asm包沖突開始用的cglib包是cglib-2.1.3.jar ,後來換了一個cglib-nodep-2.2.jar運行成功。

Copyright © Linux教程網 All Rights Reserved