나는 실행을 위해 노력하고 있으며 문제가있는 간단한 웹 어플리케이션을 가지고있다. Java EE 6 애플리케이션을 Spring으로 마이그레이션했습니다. 그것은 최대 절전 모드로 시작하지만, Spring이 엔티티를 참조하는 명명 된 bean을 만들려고 할 때 ClassNotFoundException을 얻습니다.spring + hibernate class not
봄에 WAR의 WEB-INF/lib 안에 jar 파일이 보이지 않는 이유는 무엇입니까? 프록시 문제가 있습니까?
스 니펫 (있는 경우)을보고 싶은 파일을 알려주세요.
EDIT : stack trace attached - 간략하게 스택 추적에서 정규화 된 클래스 이름을 수정했습니다. 나는 또한 나의 봄 콩 윤곽을 붙였다. 또한 참고로, 내 엔티티 클래스는 모두 다른 jar 파일에 있습니다 (의도적으로). 나는 그것이 어떤 문제를 일으키는 것으로 믿지만, 왜 확실하지는 않습니다.
n]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: api/model/principal/Group
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1011)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:957)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:490)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [server.administration.GroupExampleBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: api/model/principal/Group
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1004)
... 23 more
Caused by: java.lang.NoClassDefFoundError: api/model/principal/Group
at server.administration.GroupExampleBean.<init>(GroupExampleBean.java:20)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148)
... 25 more
Caused by: java.lang.ClassNotFoundException: api.model.principal.Group
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
... 31 more
내 Spring 애플리케이션 컨텍스트 :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jpa="http://www.springframework.org/schema/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
http://www.springframework.org/schema/jpa
http://www.springframework.org/schema/jpa/spring-jpa-3.2.xsd">
<jpa:repositories base-package="examples" />
<context:component-scan base-package="examples"/>
<context:annotation-config/>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="generateDdl" value="true" />
<property name="database" value="HSQL" />
<property name="databasePlatform" value="org.hibernate.dialect.HSQLDialect" />
</bean>
</property>
<property name="persistenceUnitName" value="persistenceUnit" />
</bean>
<bean id="transactionMa## Heading ##nager" class="org.springframework.orm.jpa.JpaTransactionManager">
<!--<property name="entityManagerFactory" ref="entityManagerFactory"/>-->
</bean>
<!--
can be: HSQL/H2/Derby
-->
<jdbc:embedded-database id="dataSource" type="HSQL"/>
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- For some reason the annotations are not being picked up yet -->
<!--<bean id="startupListener" class="examples.web.application.StartupListener"/>-->
<!-- Spring will manage the JPA Listeners
<jpa:auditing auditor-aware-ref="auditorAware" />
<bean id="auditorAware" class="org.springframework.data.jpa.example.auditing.AuditorAwareImpl" />
-->
<!--
<jpa:repositories base-package="org.springframework.data.jpa.example.repository.simple" />
-->
</beans>
감사합니다,
월터
확인하고 WEB-INF/lib 디렉토리의 내용이 WAR에 번들 또는에서 시작 분해 디렉토리로 이동 한 경우를 참조하십시오. – duffymo
전체 스택 추적 및 오류 메시지는 무엇입니까? 일반적으로 메시지는 찾을 수없는 클래스를 알려줍니다. – beny23
이미 WAR 파일을 확인 했으므로 그대로 있습니다. 그러나, hibernate의 로그를 검토 한 후에, 주석이 달린 클래스들을 탐지하기위한 시작 시간이 0ms 였기 때문에 어떤 엔티티들도 발견되지 않았다고 Hibernate는 보지 않는다. 나는 더 이상 최대 절전 모드를 확인하지 않았다. – Walter