小编sam*_*amz的帖子

为什么Future的恢复没有捕获异常?

我正在使用Scala,Play Framework 2.1.x和reactivemongo驱动程序.

我有一个api电话:

def getStuff(userId: String) = Action(implicit request => {
    Async {
      UserDao().getStuffOf(userId = userId).toList() map {
        stuffLst => Ok(stuffLst)
      } 
    }
})
Run Code Online (Sandbox Code Playgroud)

它在99%的时间内工作正常,但有时可能会失败(无关紧要的原因,这不是问题).

我想在出现错误的情况下恢复,所以我补充说:

recover { case _ => BadRequest("")}
Run Code Online (Sandbox Code Playgroud)

但这并没有让我从错误中恢复过来.
我在scala控制台上尝试了相同的概念并且它有效:

import scala.concurrent._
import scala.concurrent.duration._
import ExecutionContext.Implicits.global
var f = future { throw new Exception("") } map {_ => 2} recover { case _ => 1}
Await.result(f, 1 nanos)
Run Code Online (Sandbox Code Playgroud)

这将按预期返回1.
我目前用以下方法包装Async:

try{
  Async {...}
} catch {
  case _ => BadRequest("")
} 
Run Code Online (Sandbox Code Playgroud)

这就抓住了错误.

我在网上浏览了一些Scala的未来文档,我很困惑为什么恢复不适合我.

有谁知道为什么?我想错过什么来解决它?

scala playframework reactivemongo

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

Hibernate强制时间戳以持续/加载为UTC

我正在使用java,mysql,hibernate(3.6.x).在java方面我使用的是java.sql.Timestamp对象.在mysql方面,我正在使用datetime列.

我希望hibernate使用UTC时区保存/加载这些Timestamp对象,而不管system/java/mysql时区.

我找到了" 如何使用JPA和Hibernate以UTC时区存储日期/时间和时间戳 ",这些信息很丰富,但缺少一些我很难找到的最终实现信息.

我想实现一个UtcTimestampTypeDescriptor,如该线程所示,并配置hibernate使用它而不是正常的TimestampTypeDescriptor.

如何配置hibernate以使用UtcTimestamp类型而不是默认的Timestamp类型?

java mysql timezone timestamp hibernate

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

howto:弹性beanstalk +部署docker + graceful shutdown

嗨伟大的stackoverflow人,

在EB上托管一个docker容器,并在其上运行基于nodejs的代码.重新部署我们的docker容器时,我们希望旧的容器能够正常关闭.

我找到了关于我们的代码如何接收'docker stop'命令产生的sigterm信号的帮助和指南.

然而,对运行码头工具的EB机器的进一步调查 /opt/elasticbeanstalk/hooks/appdeploy/enact/01flip.sh 表明,当从当前"翻转"到新的分段容器时,旧的机器被"docker kill"杀死

有没有办法将此行为更改为docker stop?
或者一般来说,一种推荐的方法来处理旧容器的正常关闭?

谢谢!

deployment redeploy docker amazon-elastic-beanstalk

10
推荐指数
1
解决办法
1920
查看次数

java时区setDefault效果

以下如何使用JPA和Hibernate以UTC时区存储日期/时间和时间戳我想将我的应用程序默认时区设置为UTC.我的应用程序在Linux服务器上运行tomcat和其他一些应用程序.服务器有其他运行更多应用程序的tomcat实例.

Timezone.setDefault(tz)会影响同一个tomcat实例上的其他应用吗?

它会影响其他tomcat实例上的其他应用程序吗?

是否可以仅为应用设置时区?我松散地记得有关安全管理器设置的一些内容.

java timezone tomcat default utc

9
推荐指数
2
解决办法
6783
查看次数

使用securesocial服务而不使用其视图

我开始在我的play/scala应用程序中集成SecureSocial,但我并不喜欢它在不同视图之间所做的所有重定向.

示例 - 尝试从其默认登录页面登录,如果您输入了错误的通行证,您将被重定向到不同的页面(网址),但使用相同的登录表单.唯一不同的是,有一个错误信息......

我想要一个简单的登录表单(用户/密码提供程序)在我的主页的角落,使用ajax提交它的数据,这些数据在服务器上验证,并且响应显示错误消息或更改窗口.地点.在这个表单旁边,我将放置一个链接,转到更高级的登录页面,添加选项以使用其他提供程序,如fb/twitter等.但是从该页面我还想使用ajax提交详细信息并获得响应.

我试图浏览SecureSocial源,但在那里有点迷失.

任何人都可以告诉我如何使用SecureSocial,但不使用它的任何观点?

注意:我对定制他们的视图不感兴趣,这不仅仅是一个CSS /设计问题,我想要处理Ajaxly的登录详细信息而不是正常的表单提交,然后是重定向...

authentication ajax login playframework securesocial

5
推荐指数
1
解决办法
911
查看次数

java在文件的开头读取一个不存在的奇怪字符

我的硬盘上有一个简单的xml文件.当我用记事本++打开它时,这就是我所看到的:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
... more stuff here ...
</content>
Run Code Online (Sandbox Code Playgroud)

但当我用FileInputStream我得到的时候读它:

?<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>...
Run Code Online (Sandbox Code Playgroud)

我正在使用JAXB来解析xml,并且它会抛出"prolog中不允许的内容"的例外,因为"?" 标志.

什么是这个额外的"?" 标志?它为什么存在,如何摆脱它?

java xml jaxb

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

自定义 HTTP 标头值 - 尝试传递变音字符

我正在使用 Node.js 和 Express.js 3.x。

作为我们的授权标头之一,我们传入用户名。我们的一些用户名包含变音字符:ü ö ä 等。对于只有“普通”字符的用户名,一切正常。但是当 jörg 尝试发出请求时,服务器无法识别标头中的变音字符。

试图模拟我的问题:

  • 创建了一些使用变音字符设置用户名标题的测试。这些测试通过,他们能够正确地通过变音。
  • 使用“邮递员”和“高级休息客户端”Chrome 扩展程序并手动向服务器发出请求 - 在这种情况下它失败了。我看到服务器无法识别变音字符,它突然将其解释为某种?.

对禁止使用此类字符的自定义 HTTP 标头值字符是否有任何限制?知道为什么它可以在测试中工作但不能在我的浏览器扩展中工作吗?我是否忘记在某处设置一些字符集?

diacritics character-encoding node.js express

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