FreeMarker和OSGI

3
我们已经使用JavaEE和OSGi构建了许多框架。作为模板系统,我们选择了JSP,因为它是最快的且非常成熟。
然而,我们遇到了一个非常严重的问题。由于我们使用OSGi,因此我们只有一个Web应用程序包(WAB)。该包仅包含JSP、CSS、JS、图像、Flash + 配置XML文件。所有Java类都在不同的包(JAR)中。
问题在于,据我所知,JSP的开发人员没有提供对类加载器的访问权限,因此Java-EE的开发人员无法使JSP编译器使用WAB文件之外的类。该问题在此处描述 - https://java.net/jira/browse/GLASSFISH-11208#。Java-EE的开发人员保持沉默。
由于这个问题,使用代码确实非常困难,因为你只能使用反射。这就是为什么我们想从JSP转向Freemarker的原因。
因此,我的问题是 - Freemarker是否提供了与OSGi一起使用的所有功能?
1个回答

4
FreeMarker的模板加载机制依赖于可插拔的TemplateLoader实现,因此在这方面没有不可能的事情。希望包含的TemplateLoader-s能够胜任。
我知道一个潜在的性能问题与类内省有关(虽然从未听到用户反馈,但我只是在源代码中发现了它):如果您有多个名称相同的类(在OSGi下更容易发生),并且在模板中访问了两个实例,则FreeMarker将保持刷新其整个类内省缓存,因为它认为类已重新加载。如果你运气不好,这可能是一个性能问题。
除此之外,freemarker.jar已经被长期用于OSGi环境中。它甚至是一个开箱即用的OSGi bundle。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接