2016-02-03 2 views
1

Я работаю над проектом с несколькими модулями maven с субмодулями. Я использую Spring и Spring MVCjava.lang.NoClassDefFoundError на проекте Maven с несколькими модулями с использованием Spring

<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.xml в вашем web модуле

+0

Это делается. Существуют зависимости между модулями. Проблема в @RequestBody. Когда я его не использую, исключений нет –

+0

Возможно, у вас есть статическая инициализация в вашем классе «RealEstateAgency», который бросает исключение? – heenenee

+0

Кроме того, когда вы создаете, убедитесь, что вы делаете «mvn clean install» из своего проекта верхнего уровня, чтобы ваш модуль 'web' вытаскивал самую последнюю версию вашего класса из модуля' common'. – heenenee

Смежные вопросы