0

我正在编写一个 JSF 网络应用程序,它使用 youtube 的数据 api 通过该站点查看/上传 youtube 视频。使用此 api 的一部分是当用户上传视频时,会使用重定向参数将帖子发送到 youtube,以便在上传完成后将用户发送回我的网站。当用户在站点内时,我的会话 bean 工作正常,但是一旦它们发布到 youtube 并被重定向回来,它们的所有值都会丢失。这是一个问题,因为会话丢失后,它们会被有效地注销,并且无法重定向回管理页面。我在服务器监视器中注意到,在发布后会话 id 发生了变化,所以我认为这是问题所在,但我不知道如何确保他们的会话通过发布和重定向持续存在。有没有人有什么建议?我尝试将状态保存方法更改为客户端和服务器。

会话 bean 正在使用 @ManagedBean 和 @SessionScoped

如果有帮助,这里是上传表单的代码,uploadUrl 是 youtube url + 重定向参数。

<form action="#{adminbean.uploadUrl}" method ="post" enctype="multipart/form-data">
     <input type="file" name="file"/>
     <input type="hidden" name="token" value="#{adminbean.token.token}"/>
     <h:commandButton id ="addMatch" type="submit" value="Upload Match" />
</form>

任何帮助,将不胜感激!

4

1 回答 1

0

我想我之前有同样的问题,但只在 GoogleApp Engine 服务上(在生产服务器上,而不是在开发环境上)。

问题可能是服务器在重定向之前没有保存当前的 bean 状态。这可能会导致非常讨厌的重定向循环。

尝试根据这篇文章创建和注册阶段监听器: https ://stackoverflow.com/a/19297154/2068284

这对我有用。

于 2014-03-31T13:58:01.543 回答