2012-04-17 2 views
0

: 나는 웹 애플리케이션의 "봄의 context.xml"파일을 배치 할 폴더를 모르는 나는이 일을하고있을 때 : 긴에서"spring-context.xml"파일은 웹 애플리케이션 컨텍스트에서 어디로 이동합니까? 한마디로

ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml"); 

: 나는 클래스 경로는 기본적으로 무엇인지 . Java 프로젝트에서 jar 및 기타 자원을 찾을 위치를 알려주는 환경 변수였습니다. 그것은 많이 사용되지 않는 것 같습니다. 하지만 Eclipse에서는 Java Build Path로 이동하여 클래스 경로를 설정하는 방법에 대해 설명합니다.

classpath (위)를 사용하여 Spring "spring-context.xml"파일을 찾고 싶을 때 Eclipse Java Build Path와 관련이 있다면 무엇이 있는지 이해할 수 없다. 위의 문장을 사용할 때 웹 애플리케이션은 어떤 폴더를 보입니까? 나는 보통 사람들이 "클래스 패스에서"라고 말하지만, 환경 변수를 사용하고 싶지 않아 Eclipse Java Build Path가 spring-context.xml을 찾는 것과 거의 관계가없는 것 같아서 그렇게 많은 것을 말하지 않습니다. 파일.

더 상세 처음에 좀 더 자세한 상황을 혼란 것이라고 두려워했다,하지만 어쩌면 그들은 키를 누르고 있습니다.

웹 앱을 만들 때 Vaadin을 사용하고 있습니다. Vaadin에 Spring 컨텍스트를 가져 오는 방법에 대한 지침을 따르고 있습니다.

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath*:spring-context.xml</param-value> 
</context-param> 

내가 SpringContextHelper()의 첫 번째 줄에 오류가있어 다음 web.xml에서

public SpringContextHelper(Application application) { 
    ServletContext servletContext = ((WebApplicationContext) application.getContext()).getHttpSession().getServletContext(); 
    context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); 
} 

나는이 섹션이 : 나는 봄 도우미 클래스를 만들었습니다. 나는 그래서 나는 그것이 실패하는이 논리 알고 아래로 라인을 세분화했습니다

WebApplicationContext wac = (WebApplicationContext) application.getContext(); 

wac

다시 널 (null) 온다, 아마도 때문에 spring-context.xml 파일을 찾을 수 없습니다입니다.

+1

* * "많은 사용하지 않는 것 같습니다." * "그러나 이클립스에서는 Java 빌드 경로로 이동하여 클래스 경로를 설정하는 방법에 대해 설명합니다. * : 반드시 필요하지는 않지만 일부 경로는 기본적으로 클래스 경로에서 이미 다루고 있습니다 (예 : src 폴더, WebContent/WEB-INF/lib','WebContent/WEB-INF/classes' 등등 당신이 거기에 무엇을 던져 놓든간에, 자동적으로 webapp의 런타임 classpath에있게 될 것입니다. 'javac -cp'를 매번 반복해야한다.) – BalusC

+0

"src", "WebContent/WEB-INF/lib"및 "WebContent/WEB-INF/classes"입니다. "WebContent"가 무엇인지 어떻게 알 수 있습니까?나는 그것이 "webapp"이라고 생각했다. 그리고 다른 경로는 무엇입니까? – ksnortum

+0

Eclipse의 관점에서 이야기하고 있습니다. "WebContent"는 동적 웹 프로젝트의 공용 웹 컨텐트 폴더의 기본 이름입니다. 다른 경로는'Server/lib','JRE/lib' 및'JRE/lib/ext' 등입니다. 런타임 중에'ClassLoader # getResources()'를 사용하여 모든 경로를 찾을 수 있습니다. – BalusC

답변

0

기본적으로 프로젝트에 대해 지정하는 "Java 빌드 경로"는 이고 CLASSPATH는입니다.

"Java Resources"프로젝트 폴더의 "src"루트에 넣은 파일은 자동으로 웹 응용 프로그램의 "classes"하위 디렉토리로 이동합니다 (즉, 런타임 CLASSPATH에서 자동으로 사용 가능).

예를 들어, 사용자 정의 log4j.properties 파일이있는 경우 Eclipse 프로젝트의 "src /"루트에 있어야합니다.

"spring-context.xml은 어디에 있습니까?"라고까지 말하면, 나는 잘 모른다. 이 링크는 (적어도 웹 로직에 대한) META-INF/jsca 아래에 가야한다 제안한다 : 이것은 큰 오해입니다 :

http://docs.oracle.com/cd/E15315_09/help/oracle.eclipse.tools.weblogic.doc/html/sca.html

+0

제 질문은 위의 문이 찾을 폴더에 'spring-context.xml'파일을 놓을 수 없다는 것입니다. 런타임에 오류가 발생합니다. 'spring-context.xml'을'src'에 두는 것은 여전히 ​​런타임 오류를 가져옵니다. – ksnortum

+0

Q : "런타임 오류"란 무엇입니까? ???????????? – paulsm4

+0

제안 : Eclipse 프로젝트에서 "파일, .war로 내보내기"를 수행하십시오. .war 파일을 살펴보십시오 (.war에서 .zip으로 이름을 바꾸고 Windows 탐색기로 내용을 보는 등 여러 가지 방법이 있습니다). Eclipse 프로젝트 파일과 디렉토리가 Tomcat/App 서버 런타임 파일 및 디렉토리에 매핑되는 방식을 보여줍니다. IMHO ... – paulsm4

관련 문제