자바 프로젝트:ApplicationContext를 로드하지 못했습니다.
간단한 JUNIT 테스트 케이스를 작성하는 Java Project가 있습니다.applicationinoContext.xml 파일을 root java source 디렉토리에 복사했습니다.StackOverflow에서 읽은 몇 가지 권장 설정으로 시도해 보았지만 여전히 동일한 오류가 발생합니다.제 프로젝트가 웹 프로젝트가 아닌 자바 프로젝트이기 때문에 이 오류가 발생하는 것입니까, 아니면 그게 중요합니까?어디가 잘못되었는지 잘 모르겠습니다.
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 org.springframework.transaction.annotation.Transactional;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"C:/projs/sortation/src/main/java/applicationContext.xml"})
// Also tried these settings but they also didnt work,
//@ContextConfiguration(locations={"classpath:applicationContext.xml"})
//@ContextConfiguration("classpath:applicationContext.xml")
@Transactional
public class TestSS {
@Autowired
private EmsDao dao;
@Test
public void getSites() {
List<String> batchid = dao.getList();
for (String s : batchid) {
System.out.println(s);
}
}
}
maven을 사용하는 것 같습니다(src/main/java)
. 이 경우에는.applicationContext.xml
줄을 늘어놓다src/main/resources
디렉토리 입니다.클래스 경로 디렉토리에서 복사되며 다음을 사용하여 액세스할 수 있어야 합니다.
@ContextConfiguration("/applicationContext.xml")
Spring-Documentation에서:일반 경로(예: "context.xml")는 테스트 클래스가 정의된 패키지의 클래스 경로 리소스로 처리됩니다.슬래시로 시작하는 경로는 "/org/example/config.xml"과 같이 정규화된 클래스 경로 위치로 처리됩니다.
따라서 클래스 경로의 루트 디렉터리에 있는 파일을 참조할 때 슬래시를 추가하는 것이 중요합니다.
절대 파일 경로로 작업하는 경우 'file:C:...'를 사용해야 합니다(설명서를 제대로 이해했다면).
저도 같은 문제가 있었고 테스트를 위해 다음 플러그인을 사용하고 있었습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<useFile>true</useFile>
<includes>
<include>**/*Tests.java</include>
<include>**/*Test.java</include>
</includes>
<excludes>
<exclude>**/Abstract*.java</exclude>
</excludes>
<junitArtifactName>junit:junit</junitArtifactName>
<parallel>methods</parallel>
<threadCount>10</threadCount>
</configuration>
</plugin>
IDE(식각 sts)에서 테스트가 정상적으로 실행되고 있었지만 명령 mvn 테스트를 사용할 때 실패했습니다.
많은 시행착오 끝에 해결책은 위의 플러그인 구성에서 다음과 같은 두 줄의 병렬 테스트를 제거하는 것이라고 생각했습니다.
<parallel>methods</parallel>
<threadCount>10</threadCount>
이것이 누군가를 도와주기를 바랍니다!
이 문제에 직면한 이유는during bootstrapping my spring project
구현하는 클래스를 사용하여ApplicationListener<ContextRefreshedEvent>
그리고 안으로onApplicationEvent
함수가 예외를 던집니다.
따라서 애플리케이션 부트스트랩 포인트가 어떤 예외도 발생시키지 않도록 해야 합니다.
제 경우에는 테스트를 위해 maven surefire plugin을 사용하고 있었으므로 테스트 프로세스를 디버깅하기 위해 이 명령을 사용합니다.
mvn -Dmaven.surefire.debug test
저는 이 문제에 직면했고, 그 때 Bean(@Bean)이 테스트 클래스에서 정확한 매개 변수가 주어지지 않아 제대로 인스턴스화되지 않았습니다.
언급URL : https://stackoverflow.com/questions/5058294/java-project-failed-to-load-applicationcontext
'programing' 카테고리의 다른 글
C 프로그램을 최적화하기 위해 어떤 코딩 기법을 사용합니까? (0) | 2023.09.20 |
---|---|
현재 선택한 항목을 보존하면서 HTML 선택 옵션을 값별로 정렬하는 가장 효율적인 방법은 무엇입니까? (0) | 2023.09.20 |
C/C++에서 div 또는 ldiv를 사용하는 이유는 무엇입니까? (0) | 2023.09.20 |
저장 프로시저에 대한 입력으로 사용자 정의 유형을 전달하려면 어떻게 해야 합니까? (0) | 2023.09.20 |
알파벳을 어떻게 반복합니까? (0) | 2023.07.22 |