相关疑难解决方法(0)

在JAR中打包Facelets文件(模板,包含,复合)

是否有可能把JSF2 Facelets文件与普通的内容为JAR从内部如其他Web应用程序中使用<ui:composition template>,<ui:include src>,<cc:implementation>等?如果是,我怎样才能实现这一目标?是否需要一些额外的配置?

jsf modularity jar facelets jsf-2

19
推荐指数
1
解决办法
2万
查看次数

JSF facelets模板包装

一如既往,我有点困惑.

在这里https://community.jboss.org/wiki/ModularWebAppsWithJSF2我已经了解到它很容易并且开箱即用,可以在JSF 2.0之后将模板捆绑在单独的jar中.

唯一的问题是:我无法让它发挥作用.我只是在Web应用程序WEB-INF/lib中包含的jar中部署所有类型的"page.xhtml"(META-INF目录,资源目录,root;有和没有faces-config.xml)并请求一些东西像http://host/demo/faces/page.xhtml或在模板上做"包含"或"装饰".我得到一个例外.

这里Java EE6>将JSF facelets(xhtml)和ManagedBeans打包为JAR,我最喜欢的JSF老师解释了使用自定义ResourceResolver来做到这一点.当我调试资源解析我毫不怀疑这将工作,并将尝试.

这是关于力学的问题 - 这两种方法有什么区别?

究竟是在META-INF /资源中自动查找哪些资源?

packaging facelets jsf-2

12
推荐指数
1
解决办法
1万
查看次数

可扩展/适应性强的Java EE应用程序:接口与拦截器和装饰器

我们目前正在分析新版Java EE应用程序的技术要求.这是Java EE 6,但转到7是一个选项.到目前为止,这是一个单一的应用程序,一个EAR,提供定义明确的功能.但是,需要能够基于实现项目和/或客户以非常特定的方式定义某些功能.

例如,某些客户将具有非常特定的安全约束.可以显示框架处理的消息列表.对于一个客户,可以让用户看到所有内容,但另一个客户希望仅根据用户的组显示某些类型的消息.这是一个以特定于上下文的方式定义实现,调整核心功能的示例.另一个可能的要求是一些客户希望扩展给定的功能,增加新的可能性.这是可扩展的部分.

因此,有必要建立一个定义通用功能但具有可插拔部分的架构,以及扩展的可能性.在某些方面,我粗略地了解了如何处理这个问题.这个问题有一个完美适用于表示层的答案,我们将在JSF 2中做:如何创建模块化JSF 2.0应用程序?

我不太确定业务逻辑层,安全性等.我最初的想法是定义接口(几个外观)并在运行时或部署时找到实现.与服务提供商机制大致相同.可以提供默认实现,可以定义自定义实现.这确实感觉像是一种Java SE解决方案,我想知道我是否只是应用那些我熟悉的概念,如果没有更好的EE.我认为@Alternative注释有这样的目的.

另一种可能性是使用拦截器和装饰器.我不确定拦截器在日志记录,审计和其他不涉及核心业务逻辑的事情之外的用途有多大.装饰器似乎适合允许使用自定义功能扩展实现,也可能是可插拔部分.

有人可以提供一些见解,了解哪种解决方案最适合这一挑战的哪一部分?我应该将这些方法结合到问题域的各个部分吗?我有没有看到的可能性?

一个重要的要求:我们希望能够将特定于客户/项目的代码分开.我们不希望在每个实现的版本控制下拥有完整版本的应用程序,因为这将成为快速维护的噩梦.理想情况下,也没有必要将其构建为单片EAR,但能够将可插入部件添加到某些lib文件夹或单独部署它们.

java extensibility ejb java-ee

11
推荐指数
1
解决办法
1969
查看次数

从外部文件系统或数据库获取Facelets模板/文件

我能够成功地使用我的应用程序中的模板:

<ui:decorate template="/WEB-INF/templates/mytemplate.xhtml">
Run Code Online (Sandbox Code Playgroud)

我还可以移动模板/META-INF/templates/mytemplate.xhtml一的JAR和得到这个工作:

<ui:decorate template="/templates/mytemplate.xhtml">
Run Code Online (Sandbox Code Playgroud)

我实际上想把这个文件放到文件系统(或数据库)上.我怎样才能做到这一点?我发现很多相关的东西com.sun.facelets.impl.DefaultResourceResolver,但我认为这实际上与覆盖模板的服务有关.它不是尝试解析URL,它只是试图以某种方式在类路径上获取文件.

resources jsf external facelets jsf-2

7
推荐指数
1
解决办法
3004
查看次数

/WEB-INF/lib 之外的共享库 JAR 中的常见 Facelets 文件

我有一个公共共享库(即在 Websphere 应用程序服务器中设置为共享库)。

该 jar 的文件夹结构是:

UtilityJAR
----src
       -com
          -test
            -TestClass.java
---- META-INF
       -resources    
          -template.xhtml
          -css
             -style.css
Run Code Online (Sandbox Code Playgroud)

在我的 web 项目中,我有一个名为 User.xhtml 的模板客户端文件,它使用来自上述共享库的模板文件

ui:composition  template="/template.xhtml"
Run Code Online (Sandbox Code Playgroud)

当我在 Web 应用程序的 WEB-INF/lib 文件夹中有上述 jar 文件时,该应用程序可以正常工作,没有任何问题(可以识别 template.xhtml)。当我从这个应用程序的 Lib 文件夹中删除 jar 并将它作为共享库放在 Websphere 中时(因为我需要来自 4 个以上应用程序的这个 jar 文件,我不想在所有 4 个应用程序中复制这个 jar),我收到以下错误消息。

[9/24/14 14:09:17:936 EDT] 00000113 ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0014E: Uncaught service() exception root cause Faces Servlet: java.io.FileNotFoundException: /template.xhtml Not Found in ExternalContext as a Resource
Run Code Online (Sandbox Code Playgroud)

Utility jar 中有 faces-config 并且有 @ManagedBean 注释,当 jar 位于应用程序的 WEB-INF/lib …

jar facelets filenotfoundexception shared-libraries jsf-2

4
推荐指数
1
解决办法
1445
查看次数