抽象方法错误

我正在研究netbeans中的一个项目,当我使用glassfish 3.1.2启动它时。一切正常。但是当我调用映射到以下方法的/ invite url时

@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 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 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; } 

即使第一行方法也没有执行,并给我这个堆栈跟踪

 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) 

我正在使用Spring MVC 3.0 Hibernate 3,我最近将jdk版本从jdk6更新为jdk7 ,我正在使用IBM通用DAO 。 我在互联网上搜索了几个小时但没有找到解决方案。

更新:我使用的Jar文件列表。

 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 

当应用程序尝试调用抽象方法时,抛出java.lang.AbstractMethodError 。 通常,编译器会捕获此错误; 如果自上次编译当前正在执行的方法以来某些类的定义发生了不兼容的更改,则此错误只能在运行时发生。

似乎这个问题是由于某些jar文件中的版本不兼容。 我无法从你的代码中找到它。 请检查此主题 。

发生此错误是因为在没有实际实现的情况下调用抽象方法。 它通常发生在一些库升级后,而一些库不升级。 以某种方式缺少依赖项。

因此,请检查所有库升级是否成功完成。

这是一个关于AbstractMethodError如何发生的好例子和演示。

在运行Java 8并使用lambdas实现接口然后更改接口签名时,NetBeans中可能会发生这种情况。

简单的解决方案:运行Clean和build (默认情况下为Shift + F11 )*

在exception(或其发生的行)上放置一个断点,以找出导致问题的确切类别/方法,然后在类路径中搜索此类的所有实例。 如果类路径上有多个版本的类,请删除错误的类。

我从这里没有提到的原因得到了这个错误。

我正在使用proguard并且它混淆了一个类,然后导致了AbstractMethodError。 只需将该课程保留在proguard中。

在我的情况下我也有同样的问题,问题是我在两个不同的jar文件中有两个同名的.class文件。我从pom.xml中排除了jar文件,它开始工作了!

Aspectj 1.7.3版将解决这个问题。请试一试