问题标签 [joinfaces]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
925 浏览

primefaces - 使用带有 Hazelcast 的 Spring-Session 集群时 ViewScoped bean 的意外行为

我正在努力将集群引入基于 JSF 的 Spring-Boot Web 应用程序,一旦我们使用 Hazelcast 启用会话复制,我们就开始注意到我们的几个使用 ViewScoped bean 的 JSF 页面不再正常运行。如果我们禁用会话复制和 Hazelcast,则不再发生奇怪的行为。

我首先在我们的一个使用 PrimeFaces 向导组件的页面中注意到了这个问题。当“提交”第二页时,在向导第一页上输入的值将丢失。

然后在另一个页面上,我注意到命令按钮不再调用托管 bean 上的 actionListener 方法。我在方法中设置了一个断点,断点永远不会被击中,但是页面“闪烁”并刷新回其初始状态。我确实注意到托管 bean 上的 PostConstruct 方法不会再次调用,因此它不会生成 ViewScoped bean 的新实例。

但是,当我禁用会话复制和 Hazelcast 时,这些问题都不会发生。据我所知,检查会话及其内容,看起来确实会话正在创建并正确存储,据我所知。

该应用程序是一个 Spring-Boot Web 应用程序,使用 joinfaces 启动器引入 JSF 2.3.7 (Mojarra)、PrimeFaces 6.2 和 Omnifaces 1.14.1。我们最初在没有任何会话复制的情况下开发应用程序,并且我们的 ViewScoped bean 没有问题。

ViewScoped bean 使用 org.springframework.stereotype.Component 注释,就像您在 joinfaces 示例中看到的一样,并使用 javax.faces.view.ViewScoped 作为范围注释。我还尝试引入 Weld 并使用 @Named 注释,以及使用旧的不推荐使用的 JSF @ManagedBean 和 @ViewScoped 注释,但在所有情况下都存在相同的行为。

我已经完成并确保我们的 ManagedBeans 以及 bean 本身的任何属性都是完全可序列化的。

为了演示我所看到的,我从网络上的几个地方挑选了两个非常简单的示例,并创建了一个简单的 Spring-Boot 项目,您可以自己克隆和运行它。
https://github.com/illingtonFlex/ViewScopeDemo

此演示应用程序包含两个托管 bean 和两个 xhtml 文件。

第一个示例是从 BalusC 网站上的示例复制而来的:http: //balusc.omnifaces.org/2010/06/benefits-and-pitfalls-of-viewscoped.html

xhtml 文件如下所示:

支持此页面的 ViewScoped bean 如下所示:

如果您启动应用程序并导航到 localhost:8080/index.xhtml,请单击其中一个条目上的编辑。然后在文本字段中输入新名称并单击保存。托管 bean 上的 save 方法永远不会被调用,并且页面“重置”到它的初始状态。如果您通过注释掉 @EnableHazelcastHttpSession 注释以及 ViewScopeDemoApplication 中定义的 hazelcastInstance @Bean 来禁用 Hazelcast 和会话复制,则上述示例步骤有效。调用 save 方法,更改编辑项的名称。

为了演示另一个奇怪的 ViewScoped 行为示例,我从 PrimeFaces 展示中逐字复制了向导示例代码: https ://www.primefaces.org/showcase/ui/panel/wizard.xhtml

启动应用程序后,您可以通过 localhost:8080/wizard.xhtml 访问此示例

启用 Hazelcast 和会话复制后,您可以在 onFlowProcess 方法中设置一个断点,该断点在从向导的一个页面导航到下一个页面时触发。您可以看到在向导第一步中输入的值在随后的向导页面更改中丢失(它们变为空)。禁用 Hazelcast,值会在整个向导选项卡范围内保持不变。

当问题发生时,我没有在日志中看到任何错误或异常。我也没有在浏览器调试控制台中看到任何问题。但是,从这两个示例中可以清楚地看出,ViewScoped bean 的行为取决于是否启用了 Hazelcast 会话复制。

提前感谢您的帮助和考虑!

0 投票
0 回答
404 浏览

jsf - 无法进行页面刷新

我面临一个特殊的问题。我有一个基于 SpringBoot、JoinFaces 和 PrimeFaces 6.2 的单页应用程序。该页面主要有一个带有两个选项卡的手风琴。

在 Accordion 之后,我有一个带有提交按钮的工具栏,通过它我将选定的 XML 发送到将 XML 数据转换为 PDF 的后端服务。然后我使用 PrimeFaces-Extension 显示<pe:documentViewer>PDF<p:dialog>

问题: 在我单击浏览器上的刷新之前,流程运行良好。如果我刷新页面,我会注意到<p:fileUpload>and的 CSS<p:layout>出错了。(此外,<p:fileUpload>停止工作以及)。

在此处输入图像描述 在此处输入图像描述

观察 1: 当我比较 HTML 源代码时,刷新前后我看到刷新后,页面没有以下内容<head>

知道可能是什么原因造成的以及如何纠正吗?

观察 2: bean KWOMTesterController 当前标记为@Named。如果我也用它进行注释javax.faces.view.ViewScoped,那么 UI 问题就解决了,但是<pe:documentViewer>抱怨缺少 PDF(bean 有一个DefaultStreamedContent字段,我在其中存储 PDF 数据)。

代码片段: 这是我的 XHTML 片段:

0 投票
2 回答
6660 浏览

spring-boot - 带有primefaces的spring boot给出错误:java.lang.NoClassDefFoundError:org/springframework/core/log/LogMessage

我是 Spring Boot 的新手,我正在尝试使用 STS IDE 构建一个带有 primefaces 的简单 Spring Boot 项目。但是当我运行程序时,我得到一个错误,如下所示:

对于我的项目的 pom.xml,就是这样:

我按照本网站的步骤操作:https ://codenotfound.com/jsf-primefaces-example.html

0 投票
1 回答
1141 浏览

spring-boot - 使用 Spring Boot 找不到或重定向 Facelets 欢迎页面

我目前正在尝试将在 wildfly 上运行的 java EE 8 项目移动到最新的 spring boot。

为此,我将需要 primefaces、primefaces-extensions 和 omnifaces,因为它的组件我已经在使用并且还设计(购买)主题。

从最新的 spring boot 和 joinfaces 开始,我目前尝试定义欢迎页面或重定向到 index.xhtml 页面,但我尝试的任何操作都失败了。

这是我目前的来源:

pom.xml

/src/main/java/com/test/Application.java

/src/main/java/com/test/controllers/Index.java

/src/main/resources/META-INF/resources/index.xhtml

/src/main/resources/META-INF/resources/application.properties

那么这里需要什么来正确设置 jsf 应用程序的欢迎页面?

当我直接调用 http://localhost/index.xhtml 时,primefaces 页面将正确呈现,但是当我输入 http://localhost/时 ,不会重定向到 index.xhtml 并且我目前没有发现任何工作“重定向” ...

0 投票
0 回答
323 浏览

spring-boot - “读取配置”带有 Joinfaces 和 JSF 的 Spring Boot-App 在 bootRun 和 bootJar (Gradle Build)之间是不同的

我很想用 JSF 构建一个 Spring Boot-Applikation。Build-Tool 是 Gradle,为了在 Spring 中集成 JSF,我们使用 Joinfaces。如果我从 Spring Tool Suite(STS) 或 Gradle bootRun 启动应用程序,它会加载所有可用的配置文件,一切正常。

如果我运行 bootJar 并使用 java -jar 启动应用程序,它会丢失几个配置并且未加载 facesflows。
我们使用 joinfaces 4.1.5、SpringBoot 2.2.5 和 Gradle 6.0.1

这是 STS 或 bootRun 日志的一部分:

加载准备好的扫描结果需要 0.4388ms
读取配置:jar:file:...org.primefaces.extensions/ .../META-INF/faces-config.xml
读取配置:jar:file:...org.primefaces/primefaces.../faces-config.xml
读取配置:jar:file:.../weld-servlet-core-3.1.2.Final.jar!/META-INF/faces-config.xml
读取配置:jar:file:.../joinfaces-autoconfigure- 4.1.5.jar!/META-INF/faces-config.xml
读取配置 /dataTableLazy/dataTableLazy-flow.xml
读取配置 /button/button-flow.xml
读取配置 /confirmDialog/confirmDialog-flow.xml
读取配置 /dataTable /dataTable-flow.xml
读取配置 /main/main-flow.xml
读取配置 /accordion/accordion-flow.xml
工件 'myfaces-api' 在版本 '2.3.6' 中从路径 '...'
Artifact' myfaces-impl' 在版本 '2.3.6' 中从路径 '...' 中找到已
启用 MyFaces CDI 支持


但由于 bootJar 导致的 jar 调用缺少 flow-xml 文件:

加载准备好的扫描结果耗时 0.6126 毫秒
读取配置:jar:file:...org.primefaces.extensions/.../META-INF/faces-config.xml
读取配置:jar:file:...org.primefaces/ primefaces.../faces-config.xml
读取配置:jar:file:.../weld-servlet-core-3.1.2.Final.jar!/META-INF/faces-config.xml
读取配置:jar:文件:.../joinfaces-autoconfigure-4.1.5.jar!/META-INF/faces-config.xml
Artifact 'myfaces-api' 在版本 '2.3.6' 从路径'...'
Artifact'中找到myfaces-impl' 在版本 '2.3.6' 中从路径 '...' 中找到
MyFaces CDI 支持已启用

我们的资源树:

src/main/resources
..META-INF
....resources
......accordion
........accordion.xthml
........accordion-flow。 xml
......button
............button.xthml
............button-flow.xml
......main
............main.xthml
........main-flow.xml
......css
......等等......
..application.properties

有谁知道为什么从 bootJar 开始启动 Jar 并从 bootRun 开始显示不同的行为?有没有人遇到过同样的问题?

0 投票
1 回答
1179 浏览

spring-boot - 将 Primefaces 与 Springboot/JoinFaces 集成时出错

我正在尝试按照以下教程创建一个将primefaces与spring boot集成的应用程序:

https://medium.com/@tsepomaleka/integrating-spring-boot-with-java-server-faces-using-joinfaces-297e64f6a28f

https://codenotfound.com/jsf-primefaces-example.html

我按照教程的建议添加了连接面:

这是我的 pom.xml

我创建了 webapp/WEB-INF 文件夹结构:

在此处输入图像描述

正如您在图像上看到的那样,webapp 文件夹看起来不像 intellij 识别的那样。

其他问题是您在图像上看到的 xmlns:p="http://primefaces.org/ui" url taglib 未被识别。

所以当我在浏览器上运行时:http://localhost:8080/eleicao.xhtml 浏览器返回错误:

出现意外错误(类型=未找到,状态=404)。/eleicao.xhtml 在 ExternalContext 中未找到作为资源

那么我该如何解决呢?这样我就可以运行 primefaces 页面。

0 投票
1 回答
27 浏览

java - 完美工作的 Eclipse 项目在 Tomcat 上抛出 404

我有一个 Web 应用程序,其中包括Spring Boot , Joinfaces , JSF and Spring Security. 当我在 ECLIPSE IDE 中运行时,此 Web 应用程序运行良好。所有页面都可以正常工作,错误为 0。

问题是当我执行 mvn install 并将该项目打包到 WAR 中并将其部署到 TOMCAT 时,它只是无法正常工作。没有部署错误。就404在我试图访问我的页面时。

什么会导致这种情况?为什么它在 Eclipse 上运行良好,但在打包后无法在 Tomcat 上运行?

我应该在哪里解决这个问题?

0 投票
0 回答
261 浏览

spring-boot - Wildfly 8.2.1 中带有 JSF AdminFaces 部署问题的 Spring Boot

我正在尝试在 wildfly 8.2.1 上部署我的 JSF (Primefaces & Adminfaces) Spring Boot 项目,但引发了以下异常:

我已经尝试了这个问题的答案,但仍然无法正常工作

将 Primefaces 与 Springboot/JoinFaces 集成时出错

这是我的 pom.xml:

0 投票
2 回答
119 浏览

jsf - JoinFaces @Configurable 不注入服务

我正在将旧的 JSF 应用程序迁移到较新的版本。我对 Primefaces 的lazyDataModel 有问题

现在这些类不注入服务并且为空

我的新项目是使用 Spring Boot、JoinFaces 4 和 Spring 5。

有人可以告诉我应该使用什么新策略,或者我是否应该添加一些额外的确认,以便我的服务能够很好地注入?

0 投票
1 回答
88 浏览

spring-boot - 不知道如何将连接面包含到多模块 gradle 构建中

我的一个旧应用程序是 Java 8 Enterprise mololith,我想迁移它。

我想通过使用连接面将其迁移到包括primefaces、myfaces和omnifaces的spring boot项目中,并将其拆分为更小的部分(多模块项目)以便更好地维护。

所以我将项目分成以下模块,成为一个工作原型:

项目概况

模块的简短描述:

  • Common / ComDb :这里只生成 JPA 实体/直接从数据库分类,所有模块都可以使用哪些类
  • Libraries / LibPrimeFaces :这里只是最新的 primefaces 精英 JAR,应该在 SpringBoot 中使用
  • Libraries / LibPrimeFacesTheme :这是一个购买的 primefaces 主题,将捆绑并包含在生成的 JAR 中。
  • Services / * :应该使用的每个spring boot服务都位于这里,因此可以在主应用程序中使用,也可以通过REST从外部服务中使用
  • 应用程序:这是 Spring Boot 应用程序,它应该包括上述所有内容 - 最后甚至是一个可运行的 jar 文件

现在对我来说的问题是 gradle 的使用,这对我来说是全新的:

我不知道如何使用 gradle 将 joinfaces 与我从精英订阅、omnifaces 3 和 myfaces 购买的 primefaces-8.0.5.jar 结合起来。

大多数手册适用于 maven,但如果我转换脚本,它们似乎不适用于 gradle。

目前整个项目编译并启动没有任何错误,但现在我找不到在像我这样的多模块环境中使用连接面和 gradle 的工作示例。

以下是主要的 gradle 脚本:

根脚本:

gradle.properties(保存版本):

settings.gradle(包括和名称):

build.gradle(主构建文件):

这里是应用程序 build.gradle - JoinFaces 应该与我的 primefaces、omnifaces 和 myfaces 一起使用的文件。在这里,我不知道要添加什么才能开始使用 joinfaces: