2012-08-27 28 views
6

tôi đang làm việc trên một dự án trong netbeans rằng khi tôi khởi động nó bằng cách sử dụng 3.1.2.Everything glassfish làm việc fine.But khi tôi gọi url/mời được ánh xạ tới phương pháp sau đâyAbstract Method Lỗi

@RequestMapping(value = "/invite", method = RequestMethod.POST) 
    @ExceptionHandler(GenericException.class) 
    public ModelAndView create(@ModelAttribute(value = "preRegister") @Valid PreRegister preRegister, BindingResult result, HttpServletRequest request) { 
     mav = new ModelAndView(); 
     validator.validate(preRegister, result); 
     List<Role> roleList = null; 
     if (result.hasErrors()) { 
      mav.setViewName("user_populate_create"); 
      try { 
       roleList = roleDao.list(); 
      } catch (Exception ex) { 
       logger.error("UserController: Unable to list Roles: ", ex); 
       throw new GenericException("UserController: Unable to list Roles: " + ex.getMessage()); 
      } 
      if (roleList == null || roleList.isEmpty()) { 
       throw new GenericException("UserController: Unable to list Roles"); 
      } else { 
       mav.addObject("roles", roleList); 
      } 

     } else { 
      String uuid = RandomUuid.generate(); 
      preRegister.setUrlCode(uuid); 
      preRegister.setCreatedOn(Helper.rightNow()); 
      List<PreRegister> p; 

      try { 
       p = preRegisterDao.findbyQuery("checkAvailability", preRegister.getLoginId()); 
       if (p == null || p.isEmpty()) { 
        preRegisterDao.saveOrUpdate(preRegister); 
       } else { 
        throw new GenericException("User Email Id is Exist! try With another Email Id "); 
       } 
      } catch (Exception exception) { 
       exception.printStackTrace(); 
       logger.error("Invite user: ", exception); 
       throw new GenericException("Exception :: " + exception.getMessage()); 

      } 



     } 
     return mav; 

    } 

Ngay cả những dòng đầu tiên của phương pháp không được thực hiện và mang lại cho tôi stacktrace này

java.lang.AbstractMethodError 
    at javax.persistence.Persistence$PersistenceUtilImpl.isLoaded(Unknown Source) 
    at org.hibernate.validator.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:61) 
    at org.hibernate.validator.engine.resolver.DefaultTraversableResolver.isReachable(DefaultTraversableResolver.java:131) 
    at org.hibernate.validator.engine.resolver.SingleThreadCachedTraversableResolver.isReachable(SingleThreadCachedTraversableResolver.java:46) 
    at org.hibernate.validator.engine.ValidatorImpl.isValidationRequired(ValidatorImpl.java:1242) 
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:448) 
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:397) 
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:361) 
    at org.hibernate.validator.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:313) 
    at org.hibernate.validator.engine.ValidatorImpl.validate(ValidatorImpl.java:139) 
    at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:86) 
    at org.springframework.validation.DataBinder.validate(DataBinder.java:692) 
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doBind(HandlerMethodInvoker.java:807) 
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:359) 
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) 
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849) 
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746) 
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045) 
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228) 
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
    at java.lang.Thread.run(Thread.java:722) 

tôi đang sử dụng Spring MVC 3,0 Hibernate 3 và tôi gần đây đã được cập nhật phiên bản jdk của tôi từ jdk6 để JDK7 và Tôi đang sử dụng IBM generic DAO. Tôi đã tìm kiếm hàng giờ trên internet về điều này nhưng không thể tìm ra giải pháp.

CẬP NHẬT: Danh sách tệp Jar tôi đã sử dụng.

file: dwr.jar 
file: gson-2.2.1.jar 
file: javaee-api-6.0.jar 
file: ejb3-persistence.jar 
file: hibernate-annotations.jar 
file: hibernate-commons-annotations.jar 
file: hibernate-entitymanager.jar 
file: hibernate-validator.jar 
file: hibernate3.jar 
file: persistence.jar 
file: Jhove-final.jar 
file: jhove-handler.jar 
file: jhove-module.jar 
file: jhove.jar 
file: json-org.jar 
file: json-taglib-0.4.1.jar 
file: antlr-2.7.6.jar 
file: antlr-runtime-3.0.jar 
file: aspectjrt.jar 
file: aspectjweaver.jar 
file: commons-beanutils-1.8.0.jar 
file: commons-collections-3.1.jar 
file: commons-dbcp.jar 
file: commons-digester-2.0.jar 
file: dom4j-1.6.1.jar 
file: ehcache-1.2.3.jar 
file: javassist-3.9.0.GA.jar 
file: jstl-1.2.jar 
file: jta-1.1.jar 
file: log4j-1.2.14.jar 
file: mysql-connector-java-5.1.18-bin.jar 
file: servlet-api-2.3.jar 
file: slf4j-api-1.5.8.jar 
file: slf4j-log4j12-1.5.8.jar 
file: cas-client-core-3.1.10.jar 
file: ldapsdk-4.1.jar 
file: spring-ldap-core-1.3.0.RELEASE.jar 
file: spring-security-acl-3.0.5.RELEASE.jar 
file: spring-security-cas-client-3.0.5.RELEASE.jar 
file: spring-security-config-3.0.5.RELEASE.jar 
file: spring-security-core-3.0.5.RELEASE.jar 
file: spring-security-ldap-3.0.5.RELEASE.jar 
file: spring-security-openid-3.0.5.RELEASE.jar 
file: spring-security-taglibs-3.0.5.RELEASE.jar 
file: spring-security-web-3.0.5.RELEASE.jar 
file: com.springsource.net.sf.cglib-2.2.0.jar 
file: com.springsource.org.aopalliance-1.0.0.jar 
file: com.springsource.org.apache.commons.logging-1.1.1.jar 
file: com.springsource.org.apache.commons.pool-1.5.3.jar 
file: com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar 
file: org.springframework.aop-3.0.5.RELEASE.jar 
file: org.springframework.asm-3.0.5.RELEASE.jar 
file: org.springframework.aspects-3.0.5.RELEASE.jar 
file: org.springframework.beans-3.0.5.RELEASE.jar 
file: org.springframework.context-3.0.5.RELEASE.jar 
file: org.springframework.context.support-3.0.5.RELEASE.jar 
file: org.springframework.core-3.0.5.RELEASE.jar 
file: org.springframework.expression-3.0.5.RELEASE.jar 
file: org.springframework.instrument-3.0.5.RELEASE.jar 
file: org.springframework.instrument.tomcat-3.0.5.RELEASE.jar 
file: org.springframework.jdbc-3.0.5.RELEASE.jar 
file: org.springframework.orm-3.0.5.RELEASE.jar 
file: org.springframework.test-3.0.5.RELEASE.jar 
file: org.springframework.transaction-3.0.5.RELEASE.jar 
file: org.springframework.web-3.0.5.RELEASE.jar 
file: org.springframework.web.servlet-3.0.5.RELEASE.jar 
file: tiles-api-2.2.2.jar 
file: tiles-compat-2.2.2.jar 
file: tiles-core-2.2.2.jar 
file: tiles-el-2.2.2.jar 
file: tiles-extras-2.2.2.jar 
file: tiles-freemarker-2.2.2.jar 
file: tiles-jsp-2.2.2.jar 
file: tiles-mvel-2.2.2.jar 
file: tiles-ognl-2.2.2.jar 
file: tiles-servlet-2.2.2.jar 
file: tiles-servlet-wildcard-2.2.2.jar 
file: tiles-template-2.2.2.jar 
file: tiles-velocity-2.2.2.jar 
file: UUID-Parser.jar 
file: SafeCommons.jar 
file: safe_commons_v2.jar 
file: FileUtillsDoc.jar 
file: SAFE_MS2_V1_FILEUTILLS.jar 
file: jackson-annotations-2.0.4.jar 
file: jackson-core-2.0.4.jar 
file: jackson-databind-2.0.4.jar 
file: jai_codec-1.1.3.jar 
file: jai_core-1.1.3.jar 
file: pdfbox-app-1.3.1.jar 
file: sanselan-0.97-incubator.jar 
file: jai_codec-1.1.3.jar 
file: jai_core-1.1.3.jar 
file: pdfbox-app-1.3.1.jar 
file: sanselan-0.97-incubator.jar 

Trả lời

20

java.lang.AbstractMethodError được ném khi ứng dụng cố gắng gọi phương thức trừu tượng. Thông thường, lỗi này được trình biên dịch bắt; lỗi này chỉ có thể xảy ra tại thời gian chạy nếu định nghĩa của một số lớp đã thay đổi không tương thích kể từ khi phương thức thực hiện hiện tại được biên dịch lần cuối.

Dường như vấn đề này là do phiên bản không tương thích trong một số tệp jar. Tôi không thể hình dung nó từ mã của bạn. Vui lòng kiểm tra this thread.

+0

Liên kết tới tài liệu gốc và định dạng tương ứng để trích dẫn văn bản sẽ đẹp. – morpheus05

+1

Đó là vấn đề của tôi, các phiên bản khác nhau của các lớp học. Cảm ơn nhiều. –

+0

trong trường hợp của tôi, tôi gọi phương thức thông qua giao diện trả về và lỗi biên dịch bị bỏ qua đã có :) – kiedysktos

0

Đặt điểm ngắt trên ngoại lệ (hoặc dòng xuất hiện) để tìm ra lớp/phương thức nào chính xác đang gây ra sự cố, sau đó tìm đường dẫn lớp của bạn cho tất cả các lần xuất hiện của lớp này. Nếu bạn có nhiều phiên bản của một lớp trên đường dẫn lớp, hãy xóa một phiên bản sai.

-1

AspectJ phiên bản 1.7.3 sẽ giải quyết vấn đề này Xin vui lòng thử

1

Điều này có thể xảy ra trong NetBeans trong khi chạy Java 8 và thực hiện một giao diện sử dụng lambdas và sau đó thay đổi chữ ký các giao diện.

Giải pháp đơn giản: chạy sạch và xây dựng (phím Shift +F11 là theo mặc định) *

2

lỗi này xảy ra vì một phương pháp trừu tượng được gọi mà không cần thực hiện thực tế. Nó thường xảy ra sau khi một số thư viện được nâng cấp trong khi một số thư viện thì không. Các phụ thuộc bị thiếu bằng cách nào đó.

Do đó, hãy kiểm tra xem tất cả các nâng cấp thư viện có hoàn tất thành công hay không.

Here là một ví dụ tốt và trình diễn về cách AbstractMethodError có thể xảy ra.

+0

Câu trả lời thú vị! Cảm ơn! –

0

Tôi gặp lỗi này do nguyên nhân không được đề cập ở đây.

Tôi đã sử dụng proguard và nó làm xáo trộn một lớp, sau đó dẫn đến AbstractMethodError. Chỉ cần giữ lớp đó trong proguard.