2011-11-01 5 views
1

RAD 7.5에 웹 응용 프로그램이 있습니다. Maven을 사용하여 애플리케이션을 구축하고 WebSphere 6.1에 배치하려고합니다.java.io.FileNotFoundException 원인 : 클래스 경로 리소스 [services.xml]이 (가) 존재하지 않아 열 수 없습니다.

내 web.xml 파일의 일부는 다음과 같습니다

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

이 내가 services.xml 파일을 참조하고있는 유일한 장소입니다.

내 services.xml 파일을 받는다는 건물 한 후 폴더

FruitApplication/src/main/resources/services.xml 

에, services.xml 파일을 대상 폴더

target/FruitApplication-1.0.0/WEB-INF/classes/services.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:jee="http://www.springframework.org/schema/jee" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
     http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"> 

인가 ??? : 같은

내 services.xml 파일의 상단 본다

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>FruitApplication</groupId> 
    <artifactId>FruitApplication</artifactId> 
    <packaging>war</packaging> 
    <version>1.0.0</version> 

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.0.1</version> 
     <configuration> 
     <archive> 
       <manifestFile> 
      src/main/webapp/META-INF/MANIFEST.MF 
      </manifestFile> 
     </archive> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

<dependencies> 
     ... dependencies here ... 
</dependencies> 

</project> 

이미 모든 아래의 세 가지 옵션을 시도 : 아래

내가 "받는다는 설치"를 사용하고 전체의 pom.xml이다

<param-value>classpath:services.xml</param-value> 
<param-value>classpath:/services.xml</param-value> 
<param-value>WEB-INF/classes/services.xml</param-value> 

내가 배포하고 방법 : 내가 "추가 또는 응용 프로그램 제거"

를 서버에서 마우스 오른쪽 버튼으로 클릭하여 서버에서 응용 프로그램을 제거하고

실행중인 "maven-clean"을 실행 한 다음 응용 프로그램에서 "maven-install"을 실행하고 서버를 마우스 오른쪽 단추로 클릭하고 "응용 프로그램 추가 또는 제거"로 응용 프로그램을 다시 추가하십시오.

+0

오류가 발생하면 WAR 파일을 검사하여 파일이 실제로 예상 한 곳에 있는지 확인하십시오. – dbreaux

+0

어떻게 배포하고 있습니까? 컨테이너에 전쟁이 일어 났을 뿐이에요? 질문에 POM의 빌드 -> 리소스 부분을 포함시킬 수 있습니까? – smp7d

+0

RAD, Websphere 또는 둘 모두에서 오류가 발생합니까? @ smp7d는 resources 단계를 사용하고 services.xml을 명시 적 WEB-INF/classes 및 WEB-INF 디렉토리에 복사 할 경로를 제안했습니다. WEB-INF는 classpath에 없지만 시도해보십시오. – Rajendra

답변

3

classpath:/services.xml을 시도해보십시오. 선행 슬래시는 클래스 경로의 루트에서 자원을 가져 오는 것을 의미합니다. 그것이 없으면 파일은 클래스가로드하는 패키지에 포함될 것으로 예상됩니다 (이 경우 어떤 내용인지는 알 수 없습니다). 자사의 웹 스피어/RAD 또는 응용 프로그램에 문제가있는 경우

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html#getResourceAsStream%28java.lang.String%29

0

그림을 참조하십시오?

먼저 war 파일을 빌드하고 Tomcat 컨테이너에 놓은 다음 오류가 계속 표시되는지 확인합니다. 1. services.xml을 WEB-INF 및 WEB-INF/classes 디렉토리에 복사 한 다음 작동하는지 확인하십시오. 2. CLASSPATH 시스템 환경 변수를 확인하십시오. 시스템 CLASSPATH가 응용 프로그램 클래스 경로를 대체 할 수 있습니다.

모든 것이 Tomcat에서 문제가 없다면 Websphere/RAD에 특정한 것이 있습니다 : 3.웹 스피어 환경을 확인하십시오. 클래스 패스를 설정/재정의/접두사로 사용할 수있는 몇 가지 옵션이 websphere에 있습니다.

+0

감사합니다 .. 그것을 밖으로 시도하고 업데이 트를 게시 !! – Nik

1
  1. 선택 프로젝트 어디 reource 파일 exist.Right 클릭 - 경로를 빌드 - 빌드 경로를 구성 - 소스 - 추가 폴더를 - 당신이 클래스 경로에 폴더를 추가 할 파일 exist.This 자원 폴더를 추가 할 수 있습니다.

  2. 위 프로젝트/jar가 다른 WAR/EAR의 일부인 경우 해당 WAR 및/또는 EAR - j2ee 모듈 종속성을 선택하고 위 프로젝트를 선택하여 빌드 경로에 추가하십시오. 서버를 다시 시작하십시오.

관련 문제