不知道为什么我得到这个错误-我看不到什么是我的配置错误。
要使用的文件的引用在我的配置中引用的notification.properties文件中:
classpath:com/app/application/notification/notification
我的应用程序运行正常,并在notificaitons.properties文件中查找new.user.password.template=en/newuserpassword.html
我已经调试过了,它发现'en/newuserpassword.html'很好,但它找不到实际的文件本身。
我已经检查过了,文件确实在那里-完全匹配,但就是找不到它:
resources/com/app/application/notification/template/en/newuserpassword.html
异常:找不到资源'en/newuserpassword.html'在org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl. java:474)在org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl. java:352)在org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533)在org.apache.velocity.app.VelocityEngine. mergeTemplate(VelocityEngine.java:343)在org.apache.velocity.app.VelocityEngine.mergeTemplate(VelocityEngine.java:320)
<bean id="notificationResolver" class="com..application.notification.resolver.VelocityNotificationResolver">
<constructor-arg>
<bean class="com.amor.hcplus.application.util.spring.context.TypeConvertingReloadableResourceBundleMessageSource">
<property name="cacheSeconds" value="60" />
<property name="basenames">
<list>
<value>classpath:com/app/application/notification/notifications</value>
<value>WEB-INF/spring/i18n/enums</value>
</list>
</property>
</bean>
</constructor-arg>
<constructor-arg>
<bean id="velocityEngine" class="org.apache.velocity.app.VelocityEngine">
<constructor-arg ref="velocityProperties"/>
</bean>
</constructor-arg>
</bean>
我有一个类似的设置,为审计邮件的工作正常,模板被发现
<bean id="auditMessageResolver" class="com.amor.hcplus.application.audit.domain.VelocityAuditMessageResolver">
<constructor-arg>
<bean class="com.application.util.spring.context.TypeConvertingReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>WEB-INF/spring/i18n/enums</value>
<value>classpath:com/app/application/audit/auditing</value>
</list>
</property>
</bean>
</constructor-arg>
<constructor-arg>
<bean id="velocityEngine" class="org.apache.velocity.app.VelocityEngine">
<constructor-arg ref="velocityProperties"/>
</bean>
</constructor-arg>
</bean>
2条答案
按热度按时间guz6ccqo1#
如果您的模板在类路径中的
com/app/application/notification/template/en/newuserpassword.html
你让velocity求
en/newuserpassword.html
那么你的模板位置应该是
com/app/application/notification/template
而不是
com/app/application/notification/notifications
dluptydi2#
这是一个愚蠢的错误,对我来说,但希望它可以突出问题,任何人在未来阅读这一点。
我的notificaitons配置引用了一个velocity属性,它指向审计模板。这是如此明显,我甚至没有注意到它。
我只是添加了一个新的属性,它指向了我的模板存储的正确目录-这解决了找不到错误。