简体   繁体   English

servletContext.getResourceAsStream(this.path) 在模块化应用程序上返回 null

[英]servletContext.getResourceAsStream(this.path) returns null on a modular application

I'm using Spring boot 2.2 and primefaces 6.2 in a modular application.so added a new module to send mail using templates with thymeleaf-spring5 .我在模块化应用程序中使用Spring boot 2.2primefaces 6.2 。因此添加了一个新模块以使用带有thymeleaf-spring5模板发送邮件。 My send mail module It works very well as a monothelic application but i have this exception after the integration on my origin project,我的发送邮件模块作为单体应用程序运行良好,但在我的原始项目集成后出现此异常,

My config:我的配置:

@Bean
    public SpringResourceTemplateResolver htmlTemplateResolver(){
        SpringResourceTemplateResolver emailTemplateResolver = new SpringResourceTemplateResolver();
        emailTemplateResolver.setPrefix("/templates/");
        emailTemplateResolver.setSuffix(".html");
        emailTemplateResolver.setTemplateMode(TemplateMode.HTML);
        emailTemplateResolver.setCharacterEncoding(StandardCharsets.UTF_8.name());
        return emailTemplateResolver;
    }

This is the exception when i try to send mail:这是我尝试发送邮件时的异常:

Caused by: org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "ServletContext resource [/templates/admin-email-blocked-user.html]")
    at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:235)
    at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100)
    at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:649)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1059)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1048)
    at fr.pasteur.flexlims.jms.Receiver.receiveMessage(Receiver.java:55)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:171)
    at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:120)
    at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:114)
    ... 10 common frames omitted
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/templates/admin-email-blocked-user.html]
    at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:159)
    at org.thymeleaf.spring5.templateresource.SpringResourceTemplateResource.reader(SpringResourceTemplateResource.java:103)
    at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:223)
    ... 23 common frames omitted

Well, i don't know why but i should put my templates folder under /resources/META-INF/resources to work !好吧,我不知道为什么,但我应该将我的templates文件夹放在/resources/META-INF/resources下才能工作!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM