Results 1 to 7 of 7

Thread: Autowiring fails: Not an managed Type

  1. #1
    Join Date
    Dec 2012
    Posts
    6

    Unhappy Autowiring fails: Not an managed Type

    Hey there!

    I have a big problem in my diploma project and would be very glad if you guys could help me!
    I made a Maven Multi Module Project and have 3 �Core-projects�:
    NaviClean (Parent)
    NaviCleanDomain: contains the domain model with all my entities and an interface �MeinRemoteDienst� which is needed by NaviCleanServer and NaviCleanCleint for the Hessianprotocol
    NaviCleanClient: conatins the GUI and a Hessian connection to NaviCleanServer
    NaviCleanServer: Here are my repositories, my connection to the DB and the Implementation of the interface �MeinRemoteDienst�
    NaviCleanServer & NaviCleanClient have NaviCleanDomain in Maven as Dependency.
    Attached Images Attached Images

  2. #2
    Join Date
    Dec 2012
    Posts
    6

    Default

    Now every time I try to start the Server on my Tomcat I get the following error:
    Code:
    ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transaktionsRepository': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [at.naviclean.service.impl.MeinRemoteDienstImpl] for bean with name 'meinRemoteDienstImpl' defined in file [C:\Users\Fredy\Documents\workspace-sts-3.1.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\NaviCleanServer\WEB-INF\classes\at\naviclean\service\impl\MeinRemoteDienstImpl.class]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: at/naviclean/service/MeinRemoteDienst
    	at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:342)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
    	……………….


    The architecture:
    naviclean.jpg


    ModelBase:
    Code:
    package at.naviclean.domain;
    
    import java.io.Serializable;
    import java.util.Date;
    
    import javax.persistence.Column;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.MappedSuperclass;
    import javax.persistence.Version;
    
    @SuppressWarnings("serial")
    @MappedSuperclass
    public class ModelBase implements Serializable {
    
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "id")
    	private Long id;
    
    	@Version
    	@Column(name = "ts")
    	private Date timestamp;
    
    	public Long getId() {
    		return id;
    	}
    
    	public Date getTimestamp() {
    		return timestamp;
    	}
    
    	public void setId(Long id) {
    		this.id = id;
    	}
    
    	public void setTimestamp(Date timestamp) {
    		this.timestamp = timestamp;
    	}
    
    }
    Kassa:
    Code:
    package at.naviclean.domain;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    
    @SuppressWarnings("serial")
    @Entity
    public class Kassa extends ModelBase {
    
    	@Column(name = "name", unique = true)
    	private String name;
    
    	@Column(name = "geld")
    	private int geld;
    
    	public Kassa(String name, int geld) {
    		this.name = name;
    		this.geld = geld;
    	}
    
    	public Kassa() {
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public int getGeld() {
    		return geld;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public void setGeld(int geld) {
    		this.geld = geld;
    	}
    
    }
    MeinRemoteDienst:
    Code:
    package at.naviclean.service;
    
    import at.naviclean.domain.Kassa;
    
    public interface MeinRemoteDienst {
    
    	int getKassaCount(int plus);
    
    	String getNameFromKassa(int id);
    
    	Kassa findById(int id);
    }
    BaseRepository:
    Code:
    package at.naviclean.repositories;
    
    import org.springframework.data.jpa.repository.JpaRepository;
    
    import at.naviclean.domain.ModelBase;
    
    public interface BaseRepository<T extends ModelBase> extends
    		JpaRepository<T, Long> {
    	T findById(long id);
    
    }
    KassaRepository:
    Code:
    package at.naviclean.repositories;
    
    import java.util.List;
    
    import org.springframework.data.jpa.repository.Query;
    
    import at.naviclean.domain.Kassa;
    
    public interface KassaRepository extends BaseRepository<Kassa> {
    	List<Kassa> findByGeld(int geld);
    
    	Kassa findByName(String name);
    
    	@Query("select k from Kassa k where k.geld = ?1")
    	Kassa findByGeld1(int geld);
    }
    MeinRemoteDienstImpl:
    Code:
    package at.naviclean.service.impl;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import at.naviclean.domain.Kassa;
    import at.naviclean.repositories.KassaRepository;
    import at.naviclean.service.MeinRemoteDienst;
    
    @Service
    public class MeinRemoteDienstImpl implements MeinRemoteDienst {
    
    	@Autowired(required = true)
    	public KassaRepository kassaR;
    
    	public int getKassaCount(int plus) {
    		return 2;
    	}
    
    
    	public String getNameFromKassa(int id) {
    		return kassaR.findById(id + 0l).getName();
    	}
    
    	@Override
    	public Kassa findById(int id) {
    		return = kassaR.findById(id + 0l);
    	}
    
    }
    application-context.xml:
    Code:
    <?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:jpa="http://www.springframework.org/schema/data/jpa"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:repository="http://www.springframework.org/schema/data/repository"
    	xsi:schemaLocation="http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd
    		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
    
    	<import resource="infrastructures.xml" />
    
    	<jpa:repositories base-package="at.naviclean.repositories">
    		<repository:exclude-filter type="regex"
    			expression="at.naviclean.repositories.BaseRepository" />
    	</jpa:repositories>
    
    	<context:component-scan base-package="at.naviclean.service.impl" />
    
    </beans>
    infrastructures.xml:
    Code:
    <?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:jdbc="http://www.springframework.org/schema/jdbc"
            xmlns:context="http://www.springframework.org/schema/context"
            xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
                    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
            
            
            
            <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="showSql" value="true" />
                                    <property name="generateDdl" value="true" />
                                    <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
                            </bean>
                    </property>
            </bean>
    
            <bean id="dataSource"
                    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost/kassatest" />
                    <property name="username" value="root" />
                    <property name="password" value="" />
            </bean>
    
            <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
                    <property name="entityManagerFactory" ref="entityManagerFactory" />
            </bean>
            
            
            <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
    
    </beans>
    servlet-context.xml:
    Code:
    <?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:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc"
    	xmlns:c="http://www.springframework.org/schema/c"
    	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
    		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
    
    
    <import resource="../root-context.xml" />
    	<bean id="idMeinRemoteDienst" class="at.naviclean.service.impl.MeinRemoteDienstImpl" />
    	<bean name="/MeinRemoteDienstHessian"
    		class="org.springframework.remoting.caucho.HessianServiceExporter"
    		p:serviceInterface="at.naviclean.service.MeinRemoteDienst"
    		p:service-ref="idMeinRemoteDienst" />
    
    </beans>
    root-context.xml:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
      
    	<import resource="classpath:META-INF/spring/application-context.xml" />
    
    </beans>

  3. #3
    Join Date
    Dec 2012
    Posts
    6

    Default

    Now every time I try to start the Server on my Tomcat I get the following error:
    Code:
    ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transaktionsRepository': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [at.naviclean.service.impl.MeinRemoteDienstImpl] for bean with name 'meinRemoteDienstImpl' defined in file [C:\Users\Fredy\Documents\workspace-sts-3.1.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\NaviCleanServer\WEB-INF\classes\at\naviclean\service\impl\MeinRemoteDienstImpl.class]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: at/naviclean/service/MeinRemoteDienst
    	at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:342)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
    	……………….


    The architecture:
    naviclean.jpg


    ModelBase:
    Code:
    package at.naviclean.domain;
    
    import java.io.Serializable;
    import java.util.Date;
    
    import javax.persistence.Column;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.MappedSuperclass;
    import javax.persistence.Version;
    
    @SuppressWarnings("serial")
    @MappedSuperclass
    public class ModelBase implements Serializable {
    
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "id")
    	private Long id;
    
    	@Version
    	@Column(name = "ts")
    	private Date timestamp;
    
    	public Long getId() {
    		return id;
    	}
    
    	public Date getTimestamp() {
    		return timestamp;
    	}
    
    	public void setId(Long id) {
    		this.id = id;
    	}
    
    	public void setTimestamp(Date timestamp) {
    		this.timestamp = timestamp;
    	}
    
    }
    Kassa:
    Code:
    package at.naviclean.domain;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    
    @SuppressWarnings("serial")
    @Entity
    public class Kassa extends ModelBase {
    
    	@Column(name = "name", unique = true)
    	private String name;
    
    	@Column(name = "geld")
    	private int geld;
    
    	public Kassa(String name, int geld) {
    		this.name = name;
    		this.geld = geld;
    	}
    
    	public Kassa() {
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public int getGeld() {
    		return geld;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public void setGeld(int geld) {
    		this.geld = geld;
    	}
    
    }
    MeinRemoteDienst:
    Code:
    package at.naviclean.service;
    
    import at.naviclean.domain.Kassa;
    
    public interface MeinRemoteDienst {
    
    	int getKassaCount(int plus);
    
    	String getNameFromKassa(int id);
    
    	Kassa findById(int id);
    }
    BaseRepository:
    Code:
    package at.naviclean.repositories;
    
    import org.springframework.data.jpa.repository.JpaRepository;
    
    import at.naviclean.domain.ModelBase;
    
    public interface BaseRepository<T extends ModelBase> extends
    		JpaRepository<T, Long> {
    	T findById(long id);
    
    }
    KassaRepository:
    Code:
    package at.naviclean.repositories;
    
    import java.util.List;
    
    import org.springframework.data.jpa.repository.Query;
    
    import at.naviclean.domain.Kassa;
    
    public interface KassaRepository extends BaseRepository<Kassa> {
    	List<Kassa> findByGeld(int geld);
    
    	Kassa findByName(String name);
    
    	@Query("select k from Kassa k where k.geld = ?1")
    	Kassa findByGeld1(int geld);
    }
    MeinRemoteDienstImpl:
    Code:
    package at.naviclean.service.impl;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import at.naviclean.domain.Kassa;
    import at.naviclean.repositories.KassaRepository;
    import at.naviclean.service.MeinRemoteDienst;
    
    @Service
    public class MeinRemoteDienstImpl implements MeinRemoteDienst {
    
    	@Autowired(required = true)
    	public KassaRepository kassaR;
    
    	public int getKassaCount(int plus) {
    		return 2;
    	}
    
    
    	public String getNameFromKassa(int id) {
    		return kassaR.findById(id + 0l).getName();
    	}
    
    	@Override
    	public Kassa findById(int id) {
    		return = kassaR.findById(id + 0l);
    	}
    
    }
    application-context.xml:
    Code:
    <?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:jpa="http://www.springframework.org/schema/data/jpa"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:repository="http://www.springframework.org/schema/data/repository"
    	xsi:schemaLocation="http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd
    		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
    
    	<import resource="infrastructures.xml" />
    
    	<jpa:repositories base-package="at.naviclean.repositories">
    		<repository:exclude-filter type="regex"
    			expression="at.naviclean.repositories.BaseRepository" />
    	</jpa:repositories>
    
    	<context:component-scan base-package="at.naviclean.service.impl" />
    
    </beans>
    infrastructures.xml:
    Code:
    <?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:jdbc="http://www.springframework.org/schema/jdbc"
            xmlns:context="http://www.springframework.org/schema/context"
            xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
                    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
            
            
            
            <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="showSql" value="true" />
                                    <property name="generateDdl" value="true" />
                                    <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
                            </bean>
                    </property>
            </bean>
    
            <bean id="dataSource"
                    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost/kassatest" />
                    <property name="username" value="root" />
                    <property name="password" value="" />
            </bean>
    
            <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
                    <property name="entityManagerFactory" ref="entityManagerFactory" />
            </bean>
            
            
            <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
    
    </beans>
    servlet-context.xml:
    Code:
    <?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:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc"
    	xmlns:c="http://www.springframework.org/schema/c"
    	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
    		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
    
    
    <import resource="../root-context.xml" />
    	<bean id="idMeinRemoteDienst" class="at.naviclean.service.impl.MeinRemoteDienstImpl" />
    	<bean name="/MeinRemoteDienstHessian"
    		class="org.springframework.remoting.caucho.HessianServiceExporter"
    		p:serviceInterface="at.naviclean.service.MeinRemoteDienst"
    		p:service-ref="idMeinRemoteDienst" />
    
    </beans>
    root-context.xml:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
      
    	<import resource="classpath:META-INF/spring/application-context.xml" />
    
    </beans>

  4. #4
    Join Date
    Dec 2012
    Posts
    6

    Default

    web.xml:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    
    	<!-- The definition of the Root Spring Container shared by all Servlets 
    		and Filters -->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>/WEB-INF/spring/root-context.xml</param-value>
    	</context-param>
    
    	<!-- Creates the Spring Container shared by all Servlets and Filters -->
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    
    
    	<servlet>
    		<servlet-name>/MeinRemoteDienstHessian</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    
    	<servlet-mapping>
    		<servlet-name>/MeinRemoteDienstHessian</servlet-name>
    		<url-pattern>/remoting/*</url-pattern>
    	</servlet-mapping>
    
    </web-app>

  5. #5
    Join Date
    Dec 2012
    Posts
    6

    Default

    Here is what I already tried:
    1. I wrote this test which "went red":
    Code:
    package at.spengergasse.kassa;
    
    import static org.hamcrest.CoreMatchers.equalTo;
    import static org.hamcrest.CoreMatchers.is;
    import static org.hamcrest.CoreMatchers.not;
    import static org.hamcrest.CoreMatchers.nullValue;
    import static org.hamcrest.MatcherAssert.assertThat;
    
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    import at.naviclean.domain.Kassa;
    import at.naviclean.repositories.KassaRepository;
    
    @ContextConfiguration("classpath:META-INF/spring/application-context.xml")
    @RunWith(SpringJUnit4ClassRunner.class)
    public class KassaTest {
    
    	@Autowired(required = true)
    	private KassaRepository kassaR;
    
    	@Before
    	public void setUp() throws Exception {
    
    	}
    
    	@Test
    	public void findByIdTest() {
    		Kassa k = kassaR.findById(2);
    
    		assertThat(k, is(not(nullValue())));
    	}
    
    	@Test
    	public void findByGeld() {
    		Kassa k = kassaR.findByGeld1(1200);
    
    		assertThat(k, is(not(nullValue())));
    	}
    
    	@Test
    	public void test() {
    		Kassa vorher = new Kassa("ssf", 222);
    		kassaR.save(vorher);
    		Kassa nachher = kassaR.findById(vorher.getId());
    		kassaR.delete(nachher);
    		assertThat(vorher.getId(), is(equalTo(nachher.getId())));
    	}
    
    }
    ERRORS:
    Code:
    ERROR: org.springframework.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@41e22632] to prepare test instance [at.spengergasse.kassa.KassaTest@6639be68]
    java.lang.IllegalStateException: Failed to load ApplicationContext
    	at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:157)
    	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109)
    	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75)
    	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:321)
    	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211)
    	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:288)
    	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:290)
    	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
    	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
    	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
    	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
    	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'meinRemoteDienstImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: public at.naviclean.repositories.KassaRepository at.naviclean.service.impl.MeinRemoteDienstImpl.kassaR; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kassaRepository': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Not an managed type: class at.naviclean.domain.Kassa
    	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287)
    	………..

    2. I insertet in my persitence.xml my domainmodel an repositories manually. The result was a "green" test but I wasn't still able to start the server...

    Thanks alot in advance!!! I can't imagine what it would be without you

  6. #6
    Join Date
    Apr 2006
    Location
    Dresden, Germany
    Posts
    483

    Default

    The last exception you get actually indicates a problem with your JPA setup. "Not a managed bean" means not a type the JPA provider is aware of. If you're setting up a Spring based JPA application I'd recommend to configure the "packagesToScan" property on the LocalContainerEntityManagerFactory you have configured to the package that contains your JPA entities. Alternatively you can list all your entity classes in persistence.xml, but that's usually more cumbersome.

    The former error you got (NoClassDefFound) indicates the class mentioned is not available on the projects classpath. So you might wanna check the inter module dependencies you have. As the two relevant classes seem to be located in the same module it might also just be an issue with an incomplete deployment to Tomcat (WTP is kind of bitchy sometimes). I'd definitely recommend to run a test for verification (as you already did). As this seems to lead you to a different exception, I guess it's really some Eclipse glitch.

  7. #7
    Join Date
    Dec 2012
    Posts
    6

    Default

    Thanks a lot! After I configured LocalContainerEntityManagerFactory properly it worked

    There is just one more bug concerning my remoting protocoll, when I try to deploy my project on my Tomcat Server I get this exception:

    org.springframework.beans.factory.BeanCreationExce ption:
    Error creating bean with name 'transaktionsRepository':
    Injection of persistence dependencies failed;
    nested exception is org.springframework.beans.factory.CannotLoadBeanCl assException:
    Error loading class [at.naviclean.service.impl.MeinRemoteDienstImpl] for bean with name 'meinRemoteDienstImpl' defined in file
    [C:\Users\Fredy\Documents\workspace-sts-3.1.0.RELEASE\.metadata\.plugins\org.eclipse.wst.s erver.core\tmp0\wtpwebapps\NaviCleanServer\WEB-INF\classes\at\naviclean\service\impl\MeinRemoteDi enstImpl.class]:
    problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: at/naviclean/service/MeinRemoteDienst
    at org.springframework.orm.jpa.support.PersistenceAnn otationBeanPostProcessor.postProcessPropertyValues (PersistenceAnnotationBeanPostProcessor.java:342)
    ...
    Caused by: org.springframework.beans.factory.CannotLoadBeanCl assException:
    Error loading class [at.naviclean.service.impl.MeinRemoteDienstImpl] for bean with name 'meinRemoteDienstImpl' defined in file
    [C:\Users\Fredy\Documents\workspace-sts-3.1.0.RELEASE\.metadata\.plugins\org.eclipse.wst.s erver.core\tmp0\wtpwebapps\NaviCleanServer\WEB-INF\classes\at\naviclean\service\impl\MeinRemoteDi enstImpl.class]:
    problem with class file or dependent class;
    nested exception is java.lang.NoClassDefFoundError: at/naviclean/service/MeinRemoteDienst
    at org.springframework.beans.factory.support.Abstract BeanFactory.resolveBeanClass(AbstractBeanFactory.j ava:1265)
    ... 23 more
    Caused by: java.lang.NoClassDefFoundError: at/naviclean/service/MeinRemoteDienst
    at java.lang.ClassLoader.defineClass1(Native Method)
    ... 36 more
    Caused by: java.lang.ClassNotFoundException: at.naviclean.service.MeinRemoteDienst
    at org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1701)
    ... 47 more
    is this a similar problem (IOW is spring unable to find the classes because they are in a different project) if so…what can I do? Thanks in advance!

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •