728x90
반응형
오류 : org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource
** Velocity.java Templates 절대경로 지정하여 문서 생성하기
Velocity를 활용하여 문서를 생성 할때가 있는데, 이때 Template 위치를 프로젝트 위치가 아닌
다른 폴더 혹은 다른 경로에 지정하고 싶을때 ResourceNotFoundException을 마주 할때가 있다.
그때, 상대경로와 절대경로 지정을 할 수 있도록 조정 하는 옵션(?)이 있다.
그냥...아래를 참고하자!!
package test.common.util;
import java.io.StringWriter;
import java.util.Iterator;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
public class VelocityUtil {
private static final String TEMPL_ROOT_PATH = "test/templates/";
private static VelocityEngine _engine = null;
static
{
_engine = new VelocityEngine();
_engine.setProperty("resource.loader", "class");
_engine.setProperty(
"class.resource.loader.class",
"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"
);
try
{
_engine.init();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static StringWriter evaluate(VelocityContext context ,String vmfile) throws Exception
{
return evaluate(context, vmfile, false);
}
public static StringWriter evaluate(VelocityContext context ,String vmfile ,boolean escape) throws Exception
{
StringWriter w = new StringWriter();
Template _template = _engine.getTemplate(TEMPL_ROOT_PATH + vmfile,"KSC5601");
_template.merge(context, w);
return w;
}
}
반응형
절대경로의 Templates의 파일 읽기
package test.common.util;
import java.io.StringWriter;
import java.util.Iterator;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import nexcore.framework.core.util.BaseUtils;
public class VelocityUtil {
private static final String TEMPL_ROOT_PATH = "C:/workspace/templates";
private static VelocityEngine _engine = null;
static
{
_engine = new VelocityEngine();
_engine.setProperty("resource.loader", "file,class,classpath"); // Resource 설정
_engine.setProperty(
"class.resource.loader.class",
"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"
);
_engine.setProperty("file.resource.loader.path", TEMPL_ROOT_PATH); // Resource Path 설정
try
{
_engine.init();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static StringWriter evaluate(VelocityContext context ,String vmfile) throws Exception
{
return evaluate(context, vmfile, false);
}
public static StringWriter evaluate(VelocityContext context ,String vmfile ,boolean escape) throws Exception
{
StringWriter w = new StringWriter();
Template _template = _engine.getTemplate(vmfile,"KSC5601"); // Template 파일 이름 읽기 ex) TestFile.tmp or TestFile.vm
_template.merge(context, w);
return w;
}
}
*참고
https://issues.apache.org/jira/browse/VELOCITY-932
728x90
반응형
'JAVA' 카테고리의 다른 글
Java cacert 관련 이슈 PKIX path building failed: (0) | 2023.06.29 |
---|---|
Array/Json 데이터 표현 (0) | 2023.06.28 |
tomcat rtf파일 한글깨짐 (0) | 2023.02.03 |
[번외] Windows10 가상데스크톱 활용 (0) | 2022.12.23 |
JAVA 폴더 및 파일 삭제 (0) | 2022.11.29 |
댓글