web-dev-qa-db-fra.com

Erreur de méthode abstraite

Je travaille sur un projet dans Netbeans qui, lorsque je le lance en utilisant le glassfish 3.1.2.Tout va très bien.Mais quand j'appelle l'URL/invite qui est mappé à la méthode suivante 

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

    }

Même la première ligne de la méthode n'est pas exécutée et me donne ce stacktrace

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)

J'utilise Spring MVC 3.0 Hibernate 3 et j'ai récemment mis à jour ma version de jdk à partir de jdk6 à jdk7 et j'utilise IBM generic DAO . J'ai cherché des heures sur Internet à ce sujet mais je n'ai pas trouvé la solution.

UPDATE: Liste des fichiers Jar que j'ai utilisée.

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
9
Dangling Piyush

Java.lang.AbstractMethodError est renvoyé lorsqu'une application tente d'appeler une méthode abstraite. Normalement, cette erreur est interceptée par le compilateur. cette erreur ne peut se produire au moment de l'exécution que si la définition de certaines classes a été modifiée de manière incompatible depuis la dernière compilation de la méthode en cours d'exécution.

On dirait que ce problème est dû à une incompatibilité de version dans certains fichiers jar. Je ne peux pas le comprendre à partir de votre code. S'il vous plaît vérifier ce fil .

29
Nandkumar Tekale

Cette erreur se produit car une méthode abstraite est appelée sans implémentation réelle. Cela se produit généralement après la mise à niveau d'une bibliothèque alors que d'autres ne le sont pas. Les dépendances manquent en quelque sorte.

Par conséquent, veuillez vérifier si toutes les mises à niveau de la bibliothèque sont terminées avec succès.

Ici est un bon exemple et une démonstration de la façon dont une erreur de méthode abstraite peut se produire.

3
PixelsTech

J'ai eu cette erreur d'une cause non mentionnée ici.

J'utilisais proguard et il a obscurci une classe, ce qui a ensuite conduit à AbstractMethodError. Je devais juste garder cette classe en avance.

1
Fred Andrews

Cela peut se produire dans NetBeans lors de l'exécution de Java 8 et de l'implémentation d'une interface à l'aide de lambdas, puis de la modification de la signature des interfaces.

Solution simple: lancez Clean and build (Shift+F11 est par défaut) *

1
Zar

J'ai également eu le même problème dans mon cas, le problème était que j'avais deux fichiers .class avec le même nom dans deux fichiers jar différents.

0
Narendra

J'ai perdu du temps à ce sujet.

Dans pom.xml, pour les dépendances, si vous avez défini LATEST, cela peut être dû à cela. Veuillez spécifier la version correcte no là, c’est également une bonne pratique.

0
Nazeel

Placez un point d'arrêt sur l'exception (ou la ligne où il se produit) pour déterminer la classe/méthode à l'origine du problème, puis recherchez dans votre chemin de classe toutes les occurrences de cette classe. Si vous avez plusieurs versions d'une classe sur votre chemin de classe, supprimez la mauvaise.

0
koljaTM