2016-02-03 22 views
1

我使用子模塊處理maven多模塊項目。我使用Spring和Spring MVC使用Spring的Maven多模塊項目的java.lang.NoClassDefFoundError

<modules> 
    <module>web</module> 
    <module>business</module> 
    <module>integration</module> 
    <module>persistence</module> 
    <module>common</module> 
    <module>logging</module> 
</modules> 

我想從我的觀點得到數據使用傑克遜

@RequestMapping(value = "registerAgency", method = RequestMethod.POST) 
public final String 
registerAgency(@RequestBody final RealEstateAgency realEstateAgency) { 

//doSmth(); 
return "index"; 
} 

我的控制器在我的網絡模塊和我RealEstateAgency類是通用模塊 到控制器的時候,我運行我的項目我得到以下錯誤

javax.servlet.ServletException: Servlet.init() for servlet dispatcher threw exception 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
java.lang.Thread.run(Thread.java:745) 

java.lang.NoClassDefFoundError: com/ss/ita/redplatform/common/entity/RealEstateAgency 
java.lang.Class.getDeclaredMethods0(Native Method) 
java.lang.Class.privateGetDeclaredMethods(Class.java:2625) 
java.lang.Class.getDeclaredMethods(Class.java:1868) 
org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:609) 
org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:521) 
org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:507) 
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:241) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1069) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1042) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) 
org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668) 
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634) 
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682) 
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553) 
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494) 
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
javax.servlet.GenericServlet.init(GenericServlet.java:160) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
java.lang.Thread.run(Thread.java:745) 

誰能告訴我我做錯了什麼?

回答

0

你可能只需要您的common模塊上添加一個依賴於你的pom.xmlweb模塊

+0

它做英寸模塊之間存在依賴關係。問題出在@RequestBody中。當我不使用它時,沒有任何例外 –

+0

也許你的'RealEstateAgency'類中有一些靜態初始化拋出異常? – heenenee

+0

另外,在構建時,確保從頂級項目執行'mvn clean install',以確保您的'web'模塊正在從'common'模塊中拉取最新版本的類。 – heenenee