不确定为什么会收到此错误 - 我看不出我的配置出了什么问题。
对要使用的文件的引用位于我的配置中引用的 notification.properties 文件中:
类路径:com/app/application/notification/notifications
我的应用程序运行良好,并在 notificaitons.properties 文件中查找 new.user.password.template=en/newuserpassword.html
我已经对其进行了调试,它发现“en/newuserpassword.html”很好,但随后它找不到实际的文件本身。
我已经检查过,文件确实在那里 - 完全匹配,但就是找不到它:
resources/com/app/application/notification/template/en/newuserpassword.html
org.apache.velocity.exception.ResourceNotFoundException:无法找到资源“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>
如果您的模板在类路径上为
com/app/application/notification/template/en/newuserpassword.html
你要求速度来找到
en/newuserpassword.html
那么你的模板位置应该是
com/app/application/notification/template
而不是
com/app/application/notification/notifications