Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 找不到freemarker div-close.ftl升级到JBoss 7_Templates_Struts2_Freemarker - Fatal编程技术网

Templates 找不到freemarker div-close.ftl升级到JBoss 7

Templates 找不到freemarker div-close.ftl升级到JBoss 7,templates,struts2,freemarker,Templates,Struts2,Freemarker,我需要将在JBoss4.2.3上运行良好的.war应用程序迁移到Jboss的更新版本。 我选择了jboss-as-7.1.1.Final 经过一些小的调整后,我可以加载应用程序,但是第一次访问登录页面时返回了一个freemarker配置错误,原因是缺少文件div-close.ftl。 我发现了一个名为freemarker的文件夹,其中包含带有以下模板的内部文件夹:ajax、simple、xhtml和whtml。 缺少的div-close.ftl实际上不存在于默认ui模板的xhtml文件夹中,但我

我需要将在JBoss4.2.3上运行良好的.war应用程序迁移到Jboss的更新版本。 我选择了jboss-as-7.1.1.Final

经过一些小的调整后,我可以加载应用程序,但是第一次访问登录页面时返回了一个freemarker配置错误,原因是缺少文件div-close.ftl。 我发现了一个名为freemarker的文件夹,其中包含带有以下模板的内部文件夹:ajax、simple、xhtml和whtml。 缺少的div-close.ftl实际上不存在于默认ui模板的xhtml文件夹中,但我认为这在旧版JBoss上工作可能是因为当给定文件不存在于特定且更详细的ui模板文件夹中时,会退回到simple,请纠正我的错误

我唯一需要做的依赖项更改是将struts依赖项从2.2.1版升级到2.3.1版。 随后,freemarker依赖项从2.3.16版升级到2.3.18版

为了解决这个问题,我配置了旧版本2.3.16,但是运气不好,所以我尝试将丢失的文件从simple文件夹复制到xhtml,这个问题停止了,但是我在应用程序中导航时遇到了同样的错误,但抱怨现在在whtml文件夹中找不到模板文件

事情似乎有点乱,我不知道从哪里开始挖掘。这是一个免费的问题吗?这是一个struts问题吗

有没有人有同样的问题,或者可以帮我解决?

在freemareker.template.Configuration对象中有一个templateLoader JavaBean属性getTemplateLoader/setTemplateLoader方法对。TemplateLoader对象指定如何查找和加载模板。这里当然有一个multi-TemplateLoader,它调用其他TemplateLoader-s的列表来实现回退行为。显然,其中一些代理TemplateLoader-s坏了。通常的错误是获取模板目录的文件路径实际路径,然后从中创建FileTemplateLoader。问题在于,无论是ServletContext资源还是ClassLoader资源都不能保证作为真实文件存在。据我所知,在JBossAS7上,它们确实不是。即使战争被解压,JBoss也不会给你真正的文件路径,所以你必须正确地处理事情。也就是说,只需使用ClassTemplateLoader或WebappTemplateLoader而不是FileTemplateLoader


另外,如果您正在升级FreeMarker,那么在我写这篇文章时,没有理由在2.3.21之前停止更新最新的2.3.x。除其他外,它将用于查找模板的TemplateLoader-s放入错误消息中。现在这会很有帮助。

非常感谢您的详细回复。我第一次尝试使用在网站上找到的说明替换TemplateLoader,但没有成功。出于某种原因,spring似乎没有加载我的定制bean。我将在接下来的几天再次尝试,并尽快将结果发布在这里。再次感谢您的问候。