问题标签 [orchestra]
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.
java - 从静态资源(css、图像)中删除 MyFaces Orchestra 的“conversationContext”GET 参数
MyFaces Orchestra?conversationContext=x
为页面上的每个资源添加一个。由于我没有将会话范围用于项目的公共部分(仅用于管理部分),我想摆脱该参数有两个原因:
- 它打破了静态资源的浏览器缓存
- 它很丑 :)
我现在要看看 Orchestra 的源代码,也许会绕过一些东西,但最好是有一个我不知道的选项
java - 警告:无法注册销毁回调
15:11:14,676 WARN FacesRequestAttributes:121 - 无法为属性“purchaseController”注册销毁回调 [org.springframework.beans.factory.support.DisposableBeanAdapter@1059fd6],因为 FacesRequestAttributes 不支持此类回调
这个警告信息经常出现在我的日志中。对于每个过期的托管 bean。它会在给定时间后过期,因为我使用的是 MyFaces Orchestra。
我已经org.springframework.web.context.request.RequestContextListener
在我的 中定义了web.xml
,并且我的类路径中没有弹簧罐(即不是类加载问题)
FacesRequestAttribute 的文档说:
注意:与 ServletRequestAttributes 相比,此变体不支持作用域属性的销毁回调,既不支持请求范围,也不支持会话范围。如果您依赖此类隐式销毁回调,请考虑在 web.xml 中定义 Spring RequestContextListener。
purchaseController
实际上是一个简单的托管 bean(不扩展任何实现只)Serializable
,用@Controller
.
更新1:
@Scope("request")
里面的豆子@Scope("session")
似乎受到了影响。所以我想知道这个警告是否会对正确的流程造成任何危险。即,如果确实需要这些回调。如果没有,我将跳过带有 lo4j 配置的警告。
更新 2:
我进一步挖掘,似乎这种情况只是偶尔发生。如果使用了侦听器,则RequestContextHolder.currentRequestAttributes()
返回ServletRequestAttributes
,而不是FacesRequestAttributes
。所以看起来有时监听器不起作用并且没有在RequestContextHolder
.
更新 3:
我打开了调试RequestContextListener
,结果如下:
在尝试访问 bean 之前,请求似乎被破坏了。这很奇怪。这可能是由于侦听器处理的 servlet 容器实现中的问题吗?
jsf - Orchestra 和 RichFaces 问题
我在我的应用程序中使用 Orchestra 和 RichFaces。在我的应用程序中访问页面时,我多次收到以下错误并且页面未加载:
我相信问题的核心是我用于身份验证的过滤器。这是它的代码(conversationController 是一个会话范围的 bean):
jsf-2 - 使用 MyFaces Orchestra 时,在导航到不同的视图时,对话.access bean 不会被删除
我们正在使用 JSF 2、Spring 和 Hibernate 构建一个应用程序。MyFaces Orchestra 用于提供我们在应用程序中的大多数页面使用的会话范围(以利用 Orchestra 对 Hibernate 会话的管理)。我们所有的 bean 都被声明为使用 conversation.access 范围,这(根据 Orchestra 文档)应该意味着一旦用户导航到不包含对该支持 bean 实例的任何引用的页面,bean 就会从范围中删除.
我遇到的问题是,如果我从一个视图导航一条路而没有明确地使对话无效,如果他们稍后回到该视图,它仍然具有与以前相同的数据。我在所有支持 bean 中实现了 ConversationBindingListener 方法,我可以看到它们何时从对话中删除,并且我可以看到它们在很多情况下都不是。
使问题更令人困惑的是,当我导航到某些页面(视图)而不是其他页面时,支持 bean 被删除。我想这可能是因为页面无意中引用了 EL 中的其他支持 bean,但我找不到任何内容。我还认为,这个问题可能只发生在我从一个具有 conversation.access 范围 bean 的页面导航到使用不同的 conversation.scoped bean 的另一个页面时。但是,在从会话中删除它的情况下,该页面还包含对 conversation.access 范围 bean 的引用。
正如我之前所说,使用 Conversation.getCurrentInstance().invalidate() 显式地使对话无效是有效的。但是,不可能对每个用例都显式地使对话无效,因为这将是一个非常常见的用例,因为用户只需单击其中一个导航链接即可离开视图。
附加细节:我们使用的是 Hibernate 3.6(而不是 JPA),这意味着我们必须使用HibernatePersistenceContextFactory。
- MyFaces Orchestra (myfaces-orchestra-core20-1.4.jar)
- JSF 2 (Mojarra 2.0.4)
- 春天 3.0
- PrimeFaces 2.2.1
- RichFaces 4.0.0
这是我的 Spring 上下文配置的样子(对于 Orchestra)。
下面是几个 JSF 支持 bean 声明的示例。
tomcat - JSF 2.0/Tomcat/ Apache Orchestra @InitView 在访问 Bean 时似乎被忽略...初始化函数没有被执行
我已经尝试了几个小时来解决这个问题,但无法弄清楚问题所在。我想要做的是获取表单输入并将其保存到数据库中。我已经以完全相同的方式完成了一百万次,从未遇到任何麻烦。
这是我的表格(addPerson.xhtml)
这是我的豆:
和家长:
}
无论我尝试什么,@InitView 都会被直接忽略,当我尝试坚持时,人是空的……这怎么可能?我对提示很有帮助,因为我只是看不出问题出在哪里......事实上我之前已经工作了一百万次,这令人沮丧---如果您需要任何额外的代码,请给我留言/信息。非常感谢!
我刚刚注意到我在控制台上收到以下错误输出:
我不知道这是从哪里来的......
java - 如何删除静态资源的 Orchestra 会话上下文参数?
为了提供正确的浏览器缓存,我想去掉conversationContext
Apache MyFaces Orchestra 添加到每个请求的参数,用于对 css 文件的请求。
正如Bozho建议的那样,我已经实现了一个过滤器来设置 Orchestra 正在寻找的属性。
这不起作用,参数仍然附加到每个请求。在调试时,我发现过滤器首先受到对 jsf 站点的请求的影响。当然,我想conversation context
在该请求中包含 ,因此过滤器将请求直接转发到链中的下一个过滤器。命中过滤器的下一个请求(通常是对 css 文件的请求)已经conversation context
包含在请求中。
奇怪的是,如果我将过滤器修改为始终设置属性,则所有请求都不会具有该conversation context
属性。但这意味着,conversation context
jsf 站点的请求中也不包含(但应该)。
我注意到 jsf 站点生成的 html 中指向 css 文件的链接也包含该conversation context
属性或不包含该属性,具体取决于过滤器实现。我猜出于这个原因,第二个请求已经包含了conversation context
参数?
我不明白为什么 Orchestra 将conversation context
参数附加到每个请求,而不仅仅是未设置属性的请求。
如何实现过滤器以正常工作?
php - Yii 的资产文件夹没有写权限
我正在尝试将 PHP Yii 应用程序部署到 Orchestra (https://www.engineyard.com/products/orchestra/)。该平台,就像我认为许多基于云的平台一样,不允许写入权限。
通过将 Yii 所需的“运行时”目录放在系统的 tmp 文件夹中,我设法绕过了它。但是我坚持使用“资产”文件夹。Yii 需要一个可写且可公开访问的文件夹。
有没有解决的办法?
ajax - JSF 'Tab' bean 范围
我需要为两个页面创建一个包含两个页面和一个支持 bean 的 webapp。我试过@SessionScoped
了,但是当我在浏览器中打开其他选项卡时,我看到的数据与上一个选项卡中的数据相同。
我尝试使用MyFaces Orchestra
,但在每个 AJAX 请求上都会创建支持 bean。
如何解决问题?
事先感谢,伊利亚
php - 如何使用 Nginx & Orchestra PHP Cloud 重写 URL
我正在从 Apache 环境迁移到 Engine Yard 的 Orchestra PHP Cloud。我不知道如何适应我的应用程序的 URL 重写规则。他们为此提供的文档非常有限且基本,可以在此处查看:
https://support.cloud.engineyard.com/entries/21066927-orchestra-php-cloud-service-overview
这是我今天使用的 .htaccess。我很想就如何解决这个问题提供一些意见。
spring - 春天的谈话范围
我们有在 spring 和 jsf 1.2 上运行的 java web 应用程序。
我们还使用 apache Orchestra 作为对话范围的框架。
但是我们总是遇到 Orchestra 的问题,最后一个问题是 Orchestra ConversationManager 不支持序列化,因此我们无法序列化会话并将其复制到不同的服务器实例。但是我们需要会话复制。所以我们决定摆脱管弦乐队,并使用一些替代方案来扩大对话范围。实际上我们主要使用会话来扩展请求范围,因此切换到视图范围可以解决我们的问题。
- 也许有人知道我们可以使用哪些库来获取对话或查看范围作为弹簧自定义范围?
- 切换到seam不是一个选项,太多的代码加上spring。切换到 jsf 2 可以解决我们的问题吗?
- 或者也许有人在里面连载了管弦乐队的对话?
- 有任何想法吗?