当我不是从Jersey Resource启动service.snapshot(msg);时,它工作正常。但是对于下面的这段代码,它会生成空白的png / pdf文件。

@GET
@Path("/snapshot")
@Produces(MediaType.APPLICATION_JSON)
public RequestResponse snapshot( @QueryParam("url") String url,  // snapshot(...)
                                 @QueryParam("format") String format,
                                 @QueryParam("quality") int quality) throws InterruptedException {

    final PageSnapshotMsg msg = new PageSnapshotMsg.Builder().url(url).
                                                              format(format).
                                                              quality(quality).
                                                              build();

    return service.snapshot(msg);
}


生成的PhatomJS js脚本是相同的:
我想知道会是什么?

更新:
我试图使我的PhantomJS脚本看起来像这样(增加了延迟2000),但是它没有帮助:

var page = require('webpage').create();
page.viewportSize = { width: 800, height: 600 };
page.open('bl.ocks.org/mbostock/4063550', function(status) {just_wait(); });

    function just_wait() {
     setTimeout(function() page.render('c:/snapshots_db/1406931931354_bl_ocks_org_mbostock_4063550.png', {format: 'png', quality: '10'});
phantom.exit();}, 2000);}

最佳答案

open的URL必须是正确的URL。它必须以http://https://开头。否则什么也不会发生。

您应该检查status参数以获取提示。

var page = require('webpage').create();

page.open('http://example.com/', function(status){
    console.log(1, status); // success
    page.open('example.com/', function(status){
        console.log(2, status); // fail
        phantom.exit();
    });
});

09-16 03:49