2016-02-15 12 views
9
void makePdfPage(String url, PdfContentByte contentByte){ 
    com.itextpdf.text.Font sans = UtilityMethods.getSansSerifFont(14); 
    sans.setColor(80,147,225); 
    ColumnText ct = new ColumnText(contentByte); 
    ct.setSimpleColumn("Hello", 0, 780, 595, 830, 10, Element.ALIGN_CENTER); 
    try { 
     ct.go(); 
    } catch (DocumentException e) { 
     System.out.println(e); 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 



    Promise<WSResponse> out = notification.call(url); 
    out.map(resp->{ 
     Map<String,Object> mapp= Json.fromJson(resp.asJson().get("list"), Map.class); 
     PdfService.designPdf(mapp, contentByte); 
     return resp; 
    }); 
} 

contentByte sta vuoto per desginPdflettura valore della variabile in WS gioco risposta portata

La sua intenzione asincrona quindi ecco perché non il suo aventi il ​​valore di contentByte, può qualsiasi altro modo in modo che io possa in modo sincrono utilizzare o qualsiasi altro modo per risolvere il mio problema.

WSResponse resp = out.get(10000); 

ottenere fallisce

+0

Da dove proviene il contentByte? è una variabile globale? o è disponibile nel blocco della risposta? – Tomer

risposta

1

Non ho esperienza con Java promette, ma in base alla mia esperienza a Scala, avrei qualcosa di provato come questo:

Promise<WSResponse> out = notification.call(url); 
WSResponse res = out.map(resp->{ 
    Map<String,Object> mapp= Json.fromJson(resp.asJson().get("list"), Map.class); 
    PdfService.designPdf(mapp, contentByte); 
    return resp; 
}); 
//Do something with res 
0

Si dovrebbe dichiarare variabile contentByte come finale

void makePdfPage(String url, final PdfContentByte contentByte){ 

Inoltre, è necessario aggiungere un codice di ripristino per il caso di errore

map(...) 
.recover(new Function<Throwable,JsonNode>() { 
    public JsonNode apply(Throwable ex) { 
     if(Logger.isErrorEnabled()){ 
      Logger.error("retrieving api info",ex); 
     } 
     return null; //TODO 
    } 
    }); 
Problemi correlati