在Job / Offline中生成pdf时Play Framework 1.2.x Pdf模块问题

时间:2014-02-11 11:44:51

标签: java playframework

我正在尝试在Job中生成PDF而不是在控制器中创建它,因为它需要时间。我正在使用如下所示的PDF生成代码。这是Play框架提供的标准功能。

PDF.writePDF(file,"test.html",data, options);

现在当我运行它时,我得到Null指针异常。我在Play框架PDF模块源代码中调试了这个问题。下面是空指针来的行,因为它试图访问请求对象,但是因为我从Job调用了代码而不是来自Controller,所以请求为空。

 public static void writePDF(OutputStream out, Object... args) {
    final Http.Request request = Http.Request.current();
    final String format = request.format;

是否有其他方法可以实现此功能。

1 个答案:

答案 0 :(得分:1)

Request类的代码显示当前变量是公共的,并且它存储在ThreadLocal中。然后,您应该能够在作业开始时设置自己的Request对象。使用以下代码创建自己的Request对象。

Http.Request request = Http.Request.createRequest(...);
Http.Request.current.set(request);