2012-11-06 5 views
0

예외가 발생 예외 : org.apache.velocity.exception.ResourceNotFoundException :/WEB에서 'ResourceLoader1.vm'속도 템플릿 리소스를 찾을 수 없습니다

나는 데 ResourceLoader1.vm 찾기 자원 할 수 없음 -INF/templates, 나는 이걸 붙잡아서 도와 줘.

  Properties props = new Properties(); 
      props.put("file.resource.loader.path", "/WEB-INF/templates"); 
      Velocity.init(props); 
      VelocityContext context = new VelocityContext(); 
      context.put("greetings", "Many Happy returns"); 
      context.put("name", "Joseph"); 
      Writer writer = new StringWriter(); 
      Template template = Velocity.getTemplate("ResourceLoader1.vm"); 
      template.merge(context, writer); 

답변

3

CLASSPATH에 상대적인 .vm 템플릿을 넣어야합니다. 더 나은 선택은 다음과 같이 WEB-INF가/클래스 아래/템플릿 디렉토리를 넣어 소품을 잃고, 그것을 가져하는 것입니다 : 그것은 당신이 웹 응용 프로그램의 속도를 사용하는 것

Template template = Velocity.getTemplate("templates/ResourceLoader1.vm"); 
+0

나는 당신에게 @duffymo 감사드립니다. – sunleo

+0

나는 시도했지만 거기에 이클립스에서 웹 INF 아래에 클래스 디렉토리가 없다, 내가 이클립스 IDE에서 실행되고 있지만 클래스 디렉토리를 사용할 수 있습니다 build.So 아래에 템플릿/ResourceLoader1.vm을 넣어/classes.Please 도와주세요 내가 틀렸다면 이해하십시오. – sunleo

+0

WAR 파일을 생성 할 때/templates 디렉토리와 그 내용을 WEB-INF/classes에 복사하도록 Eclipse에 지시하십시오. – duffymo

3

. 이를 위해서는 특별히 이러한 종류의 사용을 위해 설계된 VelocityViewServlet을 사용하는 것이 좋습니다. 구성에 사용되는

FileResourceLoader 웹 서버와 컨텍스트 및 물건에 대한 지식을 가지고, 그래서 당신이 그것을 구성한 방법, 그것은 응용 프로그램 서버가 파일 시스템의 루트에 WEB-INF 폴더를 찾을 것 달리고있다.

관련 문제