2016-12-25 2 views
-1

찾을 수 없습니다 : MyObject.java :Spring 설정 XML 내가 넷빈즈 8.1 (새 프로젝트> 메이븐> Java 응용 프로그램)로 만든이 매우 간단한 프로젝트를 ApplicationContext를

public class MyObject { 
    private String message; 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 

} 

그리고 Beans.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-3.0.xsd"> 

    <bean id="myobj" class="asd.spring1.MyObject"> 
     <property name="message" value="Hello World!"/> 
    </bean> 

</beans> 

pom.xml : 내가 프로젝트를 실행하려고하면

<?xml version="1.0" encoding="UTF-8"?> 
<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>asd</groupId> 
    <artifactId>Spring1</artifactId> 
    <version>1.0</version> 
    <packaging>jar</packaging> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.3.5.RELEASE</version> 
     </dependency> 
    </dependencies> 

</project> 

나는 FileNotFoundException를 얻을 :

why 
Dec 25, 2016 7:05:13 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 
INFO: Refreshing org[email protected]4d405ef7: startup date [Sun Dec 25 19:05:13 EET 2016]; root of context hierarchy 
Dec 25, 2016 7:05:13 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from class path resource [Beans.xml] 
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [Beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [Beans.xml] cannot be opened because it does not exist 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:613) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:514) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at asd.spring1.App.main(App.java:11) 
Caused by: java.io.FileNotFoundException: class path resource [Beans.xml] cannot be opened because it does not exist 
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330) 
    ... 13 more 

당신은 내가 사방 Beans.xml 넣어 가지고 볼 수 있듯이. 왜 내가 오류가 나는지 알고 어떻게 해결할 수 있습니까?

+0

'ClassPath [...]'를 제외하고는 어디에서나 사용할 수 있습니다. –

+0

제발 좀 더 자세히 설명해주세요. 어떻게'ClassPath [...]'에 넣을 수 있습니까? –

+0

[java in classpath] (https://docs.oracle.com/javase/tutorial/essential/environment/paths.html)가 무엇인지, 사용하는 방법, 다른 클래스와 어떻게 다른지 이해하는 것이 중요합니다. 파일 시스템에있는 파일. – mangotang

답변

2

컴파일 된 JAR이 Beans.xml을 포함하고 있지 않은지 확인할 수 있습니다. 아래 설명을 참조하십시오.

우선 Java가 아닌 파일을 src/main/java 디렉토리에 두지 마십시오.

두 번째로 Maven의 빌드 출력 (리소스 플러그인의 기본 호출)을 확인할 수 있습니다. src/main/resources 디렉토리를 사용하여 기본적으로 리소스를 검색합니다.

결과적으로 XML 파일을 src/main/resources 디렉터리에 배치해야합니다.

자세한 내용은 Maven Resources Plugin을 참조하십시오.

0

대상 폴더 안에 Beans.xml이 있습니까? 컴파일 된 클래스가있는 디렉토리 안에 xml 파일이 있어야합니다. 또한

당신이 건물과 (그래서 컴파일 및 일부 폴더에 기본적으로 클래스를 이동) ID로 응용 프로그램을 실행하는 경우, 당신은 또한에 대한 클래스 경로에있는 모든 패키지를 확인해야하는
ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:Beans.xml"); 를 넣어 시도 할 수 있습니다 config 클래스.