我正在研究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<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;
}
即使是第一行方法也没有执行,并且给了我这个堆栈跟踪
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 generic 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
答案 0 :(得分:30)
java.lang.AbstractMethodError
。通常,编译器会捕获此错误;如果自上次编译当前正在执行的方法以来某些类的定义发生了不兼容的更改,则此错误只能在运行时发生。
似乎这个问题是由于某些jar文件中的版本不兼容造成的。我无法从你的代码中找到它。请检查this thread。
答案 1 :(得分:3)
发生此错误是因为在没有实际实现的情况下调用抽象方法。它通常发生在一些库升级后,而一些库不升级。依赖性以某种方式丢失。
因此,请检查所有库升级是否成功完成。
Here是关于如何发生AbstractMethodError的一个很好的例子和演示。
答案 2 :(得分:2)
我从这里没有提到的原因中得到了这个错误。
我正在使用proguard并且它混淆了一个类,然后导致了AbstractMethodError。只需将该课程保留在proguard中。
答案 3 :(得分:1)
在运行Java 8并使用lambdas实现接口然后更改接口签名时,NetBeans中可能会发生这种情况。
简单解决方案:运行清理并构建(默认情况下, Shift + F11 )*
答案 4 :(得分:0)
在异常(或其发生的行)上放置一个断点,找出导致问题的确切类别/方法,然后在类路径中搜索此类的所有匹配项。如果类路径上有多个版本的类,请删除错误的版本。
答案 5 :(得分:0)
在我的案例中我也遇到了同样的问题,问题是我在两个不同的jar文件中有两个同名的.class文件。我从pom.xml中排除了jar文件,它开始起作用了!
答案 6 :(得分:0)
我为此花了一些时间。
在pom.xml中,对于依赖项(如果已设置为LATEST),可能是由于这一原因,请在此处指定正确的版本,这也是一种最佳做法。
答案 7 :(得分:0)
如果您将任何弹簧相关性与spring-boot混合使用,则可能还会发生这种情况。检查所有依赖关系,并查找是否存在sping-boot依赖关系。如果您使用的是spring-boot,则不要导入spring依赖项,因为spring-boot已经提供了一切。如果您尝试使用spring,则不要进行spring-boot,反之亦然。
答案 8 :(得分:0)
我也遇到了这个错误,使用 Tomcat 8.5
。另一条消息指出它需要 Tomcat 9.0
,但事实并非如此 - 我使用的是 Spring Boot 2.2.5
,我的问题是缺少两种方法:
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void destroy() {
}
添加这两种方法解决了问题。
答案 9 :(得分:-1)
Aspectj 1.7.3版将解决此问题。请试一试