bestsource

자동 배선 실패:관리되지 않는 유형

bestsource 2023. 8. 22. 22:17
반응형

자동 배선 실패:관리되지 않는 유형

저는 제 졸업장 프로젝트에 큰 문제가 있는데, 여러분이 저를 도와주신다면 매우 기쁠 것입니다!저는 메이븐 멀티 모듈 프로젝트를 만들었고 3개의 "핵심 프로젝트"가 있습니다.

  • NaviClean (부모님)
  • NaviCleanDomain 합니다.MeinRemoteDienst 필요로 것.NaviCleanServer그리고.NaviCleanCleint를해위를 .Hessianprotocol
  • NaviCleanClient을 에대한 GUI 및안연포함니다합을결시헤ion▁conins▁to다에 포함합니다.NaviCleanServer
  • NaviCleanServer은 저의 및 구현, DB에 대한 연결입니다.einRemoteDienst NaviCleanServer&NaviCleanClient갖고 있다NaviCleanDomain메이븐에 속령으로.

이제 Tomcat에서 서버를 시작할 때마다 다음 오류가 발생합니다.

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)
    ……………….

모델 베이스:

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;
    }

}

카사:

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;
    }

}

내가 원격 다이엔스트:

package at.naviclean.service;

import at.naviclean.domain.Kassa;

public interface MeinRemoteDienst {

    int getKassaCount(int plus);

    String getNameFromKassa(int id);

    Kassa findById(int id);
}

기본 리포지토리

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);

}

Kassa 저장소:

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);
}

MeinRemoteDienstImppl:

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-syslog.xml:

<?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:

<?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-interval.xml:

<?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-syslog.xml:

<?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>

web.xml:

<?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>

여기 제가 이미 시도한 것이 있습니다: 1.나는 이 시험을 "빨갱이가 된" 것으로 썼습니다.

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())));
    }

}

오류:

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)
    ………..

persitence.xml 도메인 모델에 저장소를 수동으로 삽입합니다.결과는 "친환경" 테스트였지만 서버를 시작할 수 없었습니다.

잘 부탁드립니다!!!당신이 없다면 어떨지 상상할 수 없어요 :)

는 올리버 지어케로부터 매우 도움이 되는 조언을 받았습니다.

마지막으로 받은 예외는 실제로 JPA 설정에 문제가 있음을 나타냅니다."관리되는 빈이 아님"은 JPA 공급자가 인식하고 있는 유형이 아님을 의미합니다.Spring 기반 JPA 애플리케이션을 설정하는 경우 "패키지"를 구성하는 것이 좋습니다.JPA 엔티티를 포함하는 패키지로 구성한 LocalContainerEntityManagerFactory의 ToScan" 속성.또는 persistence.xml에 모든 엔티티 클래스를 나열할 수 있지만 일반적으로 이 작업이 더 번거롭습니다.

이전 오류(NoClassDefFound)는 언급된 클래스를 프로젝트 클래스 경로에서 사용할 수 없음을 나타냅니다.따라서 모듈 간 종속성을 확인해야 할 수도 있습니다.두 개의 관련 클래스가 동일한 모듈에 위치한 것처럼 보이기 때문에 Tomcat에 대한 불완전한 배포 문제일 수도 있습니다(WTP는 때때로 약간 짜증이 납니다).확인을 위한 테스트를 수행하는 것이 좋습니다(이미 수행한 것처럼).이것이 당신을 다른 예외로 이끄는 것처럼 보이기 때문에, 저는 그것이 정말로 어떤 이클립스 결함이라고 생각합니다.

감사합니다!

예를 들어, 예들구요스범캔합확위니다장야해를의를어소성▁you-▁e.<context:component-scan base-package="at.naviclean" />패키지에 at.naviclean.domain;

이를 통해 다음과 같은 예외를 제거할 수 있습니다.class at.navican.domain 관리 유형이 아닙니다.카사

추가 디버깅을 위해 응용프로그램 컨텍스트를 덤프하여 구성요소 스캔에 의해 탐지된 클래스를 탐색할 수 있습니다(@Service, @Component 등).

편집:

를 또한클를야합니다해에 .persistence.xml

<persistence-unit>
    <class>at.naviclean.domain.Kassa</class>
     ...
</persistence-unit>

같은 문제로 어려움을 겪고 있는 사람이 있다면 추가하여 해결했습니다.@EntityScan 됩니다.모델 패키지를 basePackages 속성에 추가하기만 하면 됩니다.

일반 유형을 설정하는 것을 잊었기 때문에 봄 부팅에서 CrudRepository를 사용하여 동일한 예외를 받습니다.누군가에게 도움이 될 경우를 대비해 여기에 쓰고 싶습니다.

잘못된 정의:

public interface OctopusPropertiesRepository extends CrudRepository

오류:

Caused by: java.lang.IllegalArgumentException: Not a managed type: class java.lang.Object

성공적인 정의:

public interface OctopusPropertiesRepository extends CrudRepository<OctopusProperties,Long>{

경우에는 다음과 같이 지정합니다.@SpringBootApplication(scanBasePackages = {"com.school.controllers"})

Respository의 ,@EnableJpaRepositories(basePackages = {"com.school.repos"})

도요소의경우면,@EntityScan(basePackages = {"com.school.models"})

이것은 녹을 것입니다.

"@Repository 주석이 달린 인터페이스를 자동으로 연결할 수 없습니다."

뿐만 아니라 문제도

관리되지 않는 유형

문제.아래의 샘플 구성

package com.school.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;


@SpringBootApplication(scanBasePackages = {"com.school.controllers"})
@EnableJpaRepositories(basePackages = {"com.school.repos"})
@EntityScan(basePackages = {"com.school.models"})
public class SchoolApplication {

    public static void main(String[] args) {
        SpringApplication.run(SchoolApplication.class, args);
    }

}

저의 경우 IntelliJ를 사용할 때 프로젝트에 여러 모듈이 있었습니다.메인 모듈은 스프링에 대한 메이븐 의존성을 가진 다른 모듈에 의존했습니다.

에는 메모듈이 있었습니다.Entitys와 두 번째 모듈도 마찬가지입니다.모듈을 하만메모실을때행했, 만.Entity두 번째 모듈의 s가 관리 클래스로 인식되었습니다.

그런 다음 메인 모듈에 대한 스프링 종속성도 추가했는데, 무엇인지 추측해 보십시오.그것은 모든 것을 인식했습니다.Entitys의

체크 패키지가 필요합니다.스캔합니다.

<bean id="entityManagerFactoryDB" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
    <property name="dataSource" ref="dataSourceDB" />
    <property name="persistenceUnitName" value="persistenceUnitDB" />
    <property name="packagesToScan" value="at.naviclean.domain" />
                                            //here
 .....

이 문제가 발생하여 엔티티 팩 이름을 EntityScan, ComponentScan 등에 추가하는 다른 방법을 시도했지만 아무 것도 작동하지 않았습니다.

리포지토리 구성의 EntityManagerFactory에 있는 packageScan 구성에 패키지를 추가했습니다.아래 코드는 위에서 답변한 XML 기반 구성과 달리 코드 기반 구성을 제공합니다.

@Primary
@Bean(name = "entityManagerFactory")
public EntityManagerFactory entityManagerFactory() {
    LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
    emf.setDataSource(dataSource);
    emf.setJpaVendorAdapter(jpaVendorAdapter);
    emf.setPackagesToScan("org.package.entity");
    emf.setPersistenceUnitName("default"); 
    emf.afterPropertiesSet();
    return emf.getObject();
}

를 확장할 는 JpaRespository(KassaRespository는 JpaRespository)와 함께 을 달아야 .@NoRepositoryBean:

@NoRepositoryBean
public interface BaseRepository<T extends ModelBase> extends JpaRepository<T, Long> {
    T findById(long id);
}

다른 불량 소드가 같은 문제를 가지고 있어서 여기까지 오게 되는 경우를 대비해서, 여러 데이터 소스가 있고 기본이 아닌 데이터 소스에서 이런 일이 발생하면 해당 구성에 문제가 있을 수 있습니다.데이터 소스, 엔티티 관리자 팩토리 및 트랜잭션 팩토리를 모두 올바르게 구성해야 하지만, 이것이 바로 저를 곤경에 빠뜨린 이유이기도 합니다. 이들을 모두 연결해야 합니다!@EnableJpaRepositories(구성 클래스 주석)은 다음을 포함해야 합니다.entityManagerFactoryRef그리고.transactionManagerRef모든 구성을 선택합니다!

이 블로그의 예는 마침내 제가 무엇을 놓쳤는지를 확인하는 데 도움이 되었습니다. 여기에는 (빠른 참조를 위해) 참고 자료가 포함되어 있습니다.

@EnableJpaRepositories(
    entityManagerFactoryRef = "barEntityManagerFactory",
    transactionManagerRef = "barTransactionManager",
    basePackages = "com.foobar.bar")

이것이 제가 견뎌낸 투쟁에서 다른 누군가를 구하는 데 도움이 되기를 바랍니다!

올리버 지어케의 힌트를 참조하면,

persistance.xml을 조작하여 트릭을 수행하면 엔티티 클래스 대신 일반 Java 클래스를 생성할 수 있습니다.

새 엔티티 클래스를 만들 때 persistance.xml의 항목은 Netbeans(나의 경우)로 설정해야 합니다.

그러나 Oliver Gierke가 언급했듯이 persistance.xml에 나중에 항목을 추가할 수 있습니다(일반 Java 클래스를 만든 경우).

저에게 오류는 @alfred_m이 말한 것에 근거하여 매우 단순했습니다. ...tomcat에는 클래스 이름과 구성이 동일한 두 개의 jar가 충돌합니다.

무슨 일이 있었는지는 ..........저는 기존 프로젝트를 복사하여 기존 프로젝트를 새로운 프로젝트로 만들었습니다.하지만 필요한 변경을 하지 않고 다른 프로젝트를 시작했습니다.Henec 2 프로젝트의 클래스 및 구성 파일이 동일하여 충돌이 발생했습니다.

복사된 프로젝트를 삭제하고 작동하기 시작했습니다!!!!

리포지토리 클래스의 CrudRepository에 잘못된 Entity 개체를 전달할 때 동일한 예외가 발생합니다.

public interface XYZRepository extends CrudRepository<IncorrectEntityClass, Long>

언급URL : https://stackoverflow.com/questions/14069449/autowiring-fails-not-an-managed-type

반응형