国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list錯(cuò)誤解決辦法

2019-11-26 13:27:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list錯(cuò)誤解決辦法

玩web的SSH總會(huì)有些令你意想不到的exception,這里其中有很多事自己不小心,或者馬虎所造成。因此,解決的方案會(huì)各有不同,別人出現(xiàn)的異常解決方案對(duì)你的可能無(wú)效,就像上面的我報(bào)的異常一樣,百度了很多很多次,給我的答案無(wú)非就是在aop上加上一句,但是非常抱歉,我加上去無(wú)效!所以還是那句話,對(duì)于自己的異常,還是要自己解決。

首先說(shuō)明一下,我這次的練習(xí)的ssh結(jié)構(gòu)和異常所報(bào)的原因。

用的框架式struts2.2+hibernate4.2+spring4.0,容器室tomcat7.0.在Action中,我寫了一個(gè)基類BaseAction,繼承了ActionSupport,實(shí)現(xiàn)了ModelDriven接口,代碼如下:

----------@Component@Transactional----------public abstract class BaseAction<T> extends ActionSupport implements ModelDriven<T> {  private static final long serialVersionUID = 2719688501307297741L;  @Resource(name = "roleServiceImpl")  protected RoleService roleService;  @Resource(name = "departmentService")  protected DepartmentService departmentService;  @Resource(name = "userService")  protected UserService userService;  protected T model;  public BaseAction() {    ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();    @SuppressWarnings("unchecked")    Class<T> clazz = (Class<T>) pt.getActualTypeArguments()[0];    try {      model = clazz.newInstance();    } catch (Exception e) {      throw new RuntimeException(e);    }  }  public T getModel() {    return model ;  }}

這樣做的好處是,每個(gè)組件對(duì)應(yīng)的Action中只需要告訴BaseAction自己要實(shí)現(xiàn)的泛型,然后只需要完成自己的邏輯。對(duì)于每個(gè)Action要實(shí)現(xiàn)ActionSupport來(lái)講,這是一項(xiàng)基本的且容易想到的方案。

然后,在每個(gè)Action中調(diào)用service組件實(shí)現(xiàn)自己的功能,在每個(gè)Action中都使用了@Component(“departmentAction”),@Scope(“prototype”)注解,但是練習(xí)一測(cè)試,就會(huì)出現(xiàn)Java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list()異常,檢查之后發(fā)現(xiàn),原因是:

BaseAction是抽象的,在上面加了@Transactional是沒(méi)有意義的,

而@Transactional就是有spring管理,spring管理的對(duì)象要生成代理,而對(duì)于一個(gè)抽象的類,是不能被new成對(duì)象的,只有一個(gè)抽象類的具體實(shí)現(xiàn)類才有可能是被spring代理。

所以,去掉BaseAction上面的@Transactional,就是本題的原因了。

  感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 化州市| 昌宁县| 漳州市| 大庆市| 无极县| 永顺县| 铅山县| 岑巩县| 六枝特区| 治多县| 葵青区| 凌源市| 界首市| 崇义县| 深水埗区| 阿勒泰市| 连云港市| 阿荣旗| 博爱县| 武夷山市| 大连市| 油尖旺区| 永寿县| 友谊县| 沧源| 奉新县| 淅川县| 墨竹工卡县| 龙陵县| 本溪| 珲春市| 京山县| 双牌县| 桂阳县| 黄冈市| 峨边| 贵溪市| 望城县| 新源县| 铜山县| 凤庆县|