我认为问题是您在Scala控制器中使用Java API。
Http.Context仅在使用Java控制器时设置。您是否考虑过使用Scala Session API?
另外,另一个问题是,为什么您需要在上下文中存储会话?我想您还是将其最后删除了。如果您需要子操作能够访问会话,则可以在函数中传递它。
我只是假设
session是类型
Session
def withTransaction[A](bp: BodyParser[A])(f: Session => Request[A] => Result): Action[A] = { Action(bp) { request => val session = createSession() session.conn.setAutoCommit(false) try { val result = f(session)(request) session.conn.commit() result } catch { case t: Throwable =>session.conn.rollback()throw t } finally { session.close() } }}而您的子操作将是
withTransaction(parse.anyContent) { session => request => //pre that produces a result here}您无需再将其包装Action,因为它已经被包装
withTransaction



