Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type異常
今天做了一個(gè)Map轉(zhuǎn)java對象的例子,用了一種比較簡單的方法,就是通過net.sf.cglib.beans.BeanMap類中的方法進(jìn)行轉(zhuǎn)換。結(jié)果在一切準(zhǔn)備就緒,執(zhí)行的時(shí)候報(bào)錯(cuò)了,如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:184) at net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:66) at net.sf.cglib.beans.BeanMap$Generator.<clinit>(BeanMap.java:64) at net.sf.cglib.beans.BeanMap.create(BeanMap.java:56) at com.example2.pojo.MapToPojo.mapToBean(MapToPojo.java:27) at com.example2.pojo.MapToPojo.main(MapToPojo.java:18) Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 6 more
先貼上本例的主要代碼吧:
package com.example2.pojo; import java.util.HashMap; import java.util.Map; import net.sf.cglib.beans.BeanMap; public class MapToPojo { /** * @param args */ public static void main(String[] args) { Map<String, Object> map = new HashMap<String, Object>(); map.put("name", "張三"); map.put("age", 30); try { Employee employee = (Employee) mapToBean(map, Employee.class); System.out.print(employee.toString()); } catch (Exception e) { e.printStackTrace(); } } public static Object mapToBean(Map<String, Object> map, Class<?> beanClass) throws Exception { Object object = beanClass.newInstance(); BeanMap beanMap = BeanMap.create(object); beanMap.putAll(map); return object; } }
Employee類:
package com.example2.pojo; public class Employee { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Employee [name=" + name + ", age=" + age + "]"; } }
從錯(cuò)誤信息上看,是缺少了org.objectweb.asm.Type類,那么找一個(gè)就OK了,從網(wǎng)上下載了com.springsource.org.objectweb.asm-3.2.0.jar包,引入后,再次執(zhí)行,成功。
補(bǔ)充:其實(shí)項(xiàng)目中已引入的spring-core-4.1.7.RELEASE.jar包中也已經(jīng)集成了cglib模塊,如圖:
引用這個(gè)包里的BeanMap類也可以,
import org.springframework.cglib.beans.BeanMap;
執(zhí)行后,達(dá)到同樣效果。
到此這篇關(guān)于Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type異常的文章就介紹到這了,更多相關(guān)org.objectweb.asm.Type異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解JAVA抓取網(wǎng)頁的圖片,JAVA利用正則表達(dá)式抓取網(wǎng)站圖片
這篇文章主要介紹了詳解JAVA抓取網(wǎng)頁的圖片,JAVA利用正則表達(dá)式抓取網(wǎng)站圖片,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12knife4j3.0.3整合gateway和注冊中心的詳細(xì)過程
這篇文章主要介紹了knife4j3.0.3整合gateway和注冊中心的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03使用logstash同步mysql數(shù)據(jù)到elasticsearch實(shí)現(xiàn)
這篇文章主要為大家介紹了使用logstash同步mysql數(shù)據(jù)到elasticsearch實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12Spring?Boot?DevTools?全局配置學(xué)習(xí)指南
這篇文章主要介紹了Spring?Boot?DevTools?全局配置,注意包括直接重啟項(xiàng)目與devtools重啟的區(qū)別,DevTools配置,DevTools全局配置及trigger-file控制重啟行為的相關(guān)知識,需要的朋友可以參考下2022-03-03Spring?Boot?Admin?添加報(bào)警提醒和登錄驗(yàn)證功能的具體實(shí)現(xiàn)
報(bào)警提醒功能是基于郵箱實(shí)現(xiàn)的,當(dāng)然也可以使用其他的提醒功能,如釘釘或飛書機(jī)器人提醒也是可以的,但郵箱報(bào)警功能的實(shí)現(xiàn)成本最低,所以本文我們就來看郵箱的報(bào)警提醒功能的具體實(shí)現(xiàn)2022-01-01