[
https://issues.apache.org/jira/browse/VELOCITY-932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17361937#comment-17361937
]
Svante Schubert edited comment on VELOCITY-932 at 6/11/21, 6:33 PM:
--------------------------------------------------------------------
First thought was the same reason (therefore in this issue)
!2021-06-11_20-05-37.png!
was (Author: svanteschubert):
I lost half a day for the same reason... !2021-06-11_20-05-37.png!
> Resource not found when executing jar file, works fine in IDE
> -------------------------------------------------------------
>
> Key: VELOCITY-932
> URL: https://issues.apache.org/jira/browse/VELOCITY-932
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 1.7.x, 2.2
> Environment: local
> Reporter: ecstasy
> Assignee: Claude Brisson
> Priority: Major
> Attachments: 2021-06-11_20-05-37.png, TestVelocity_src.zip
>
>
> Hello, I have a simple maven project with 1 class file. The project works
> fine in eclipse but when creating a jar out of it and executing it, it runs
> into error of ResourceNotFound
>
> {code:java}
> SEVERE: ResourceManager : unable to find resource
> '\templates\welcomeLetter.vm' in any resource loader.
> Exception in thread "main" java.lang.ExceptionInInitializerError
> Caused by: org.apache.velocity.exception.ResourceNotFoundException: Unable to
> find resource '\templates\welcomeLetter.vm'
> at
> org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:474)
> at
> org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352)
> at
> org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533)
> at
> org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1514)
> at
> org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:373)
> at
> net.rajanpanchal.handlers.WelcomeLetterGeneratorHandler.<clinit>(WelcomeLetterGeneratorHandler.java:48)
> {code}
>
> Class file:
> {code:java}
> public class WelcomeLetterGeneratorHandler implements
> RequestHandler<Map<String, String>, String> {
> String fileObjKeyName = "welcome_letter.txt";
> static VelocityContext vContext;
> static Template t;
>
> static {
> // Create a new Velocity Engine
> VelocityEngine velocityEngine = new VelocityEngine();
> // Set properties that allow reading vm file from classpath.
> Properties p = new Properties();
> velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER,
> "file,class,classpath");
> velocityEngine.setProperty("class.resource.loader.class",
>
> "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
> velocityEngine.setProperty("file.resource.loader.path",
> "classpath");
> try {
> velocityEngine.init(p);
> } catch (Exception e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> // read the template from resources folder
> System.out.println("Current
> dir:"+System.getProperty("user.dir"));
> try {
> t =
> velocityEngine.getTemplate("\\templates\\welcomeLetter.vm");
> } catch (ResourceNotFoundException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> } catch (ParseErrorException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> } catch (Exception e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> } vContext = new VelocityContext();
> } public String handleRequest(Map<String, String> event, Context
> context) {
> String response = new String("200 OK");
> try {
> // Add data to velocity context
> vContext.put("name", "Joe");
> File f = new File(fileObjKeyName);
> FileWriter writer = new FileWriter(f);
> // merge template and Data
> t.merge(vContext, writer);
> writer.flush();
> writer.close(); } catch (Exception ex) {
> throw new RuntimeException(ex);
> } return response;
> }
>
> public static void main(String[] args) {
> // TODO Auto-generated method stub
> WelcomeLetterGeneratorHandler handler = new
> WelcomeLetterGeneratorHandler();
> Context context = null;
> handler.handleRequest(null, context);
>
> /* first, we init the runtime engine. Defaults are fine. */
> }
> }
> {code}
> Attaching Source maven project.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]