2016-09-25 1 views
0

J'utilise GWT, java, iText pour produire un PDF et je souhaite reformater la date. Cependant, ce code, sur le côté serveur, les résultats dans le message « Échec de la connexion » du côté client (il n'y a pas de messages d'erreur dans le journal) et pas de sortie:Si une instruction côté serveur utilisant iText entraîne une erreur de connexion

  String storedName = " "; 
      DateTimeFormat sdf = DateTimeFormat.getFormat("dd-MM-yyyy"); 

      for (final Transcript scoutNamesDescription : listymAwards) { 

       if (scoutNamesDescription.getSection().equals(storedName)){ 
        table.addCell(" "); 
       }else{ 
        storedName = scoutNamesDescription.getSection(); 
        table.addCell(scoutNamesDescription.getSection()); 
       } 
       table.addCell(scoutNamesDescription.getAwardName()); 

       Date awardedDate = sdf.parse(scoutNamesDescription.getAwardedDate()); 
       String awardedString = DateTimeFormat.getFormat("dd-MM-yyyy").format(awardedDate); 
       table.addCell(awardedString);  
      } 
      preface.add(table); 
      document.add(preface); 

Quand je commente le reformatage date cela marche.

J'ai essayé de remplacer le reformatage avec:

System.out.println(scoutNamesDescription.getAwardedDate()); 
       formatedDate = StringUtils.substring(scoutNamesDescription.getAwardedDate(), 8, 2) + 
         StringUtils.substring(scoutNamesDescription.getAwardedDate(), 4, 4) + 
         StringUtils.substring(scoutNamesDescription.getAwardedDate(), 0, 2); 
       System.out.println(formatedDate); 

Et cela produit aussi la même erreur entre les deux println.

Sur la base de la réponse de Andrei Volgin Je donne les résultats suivants:

  String storedName = null; 
      DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd"); 
      DateFormat df2 = new SimpleDateFormat("dd-MM-yyyy"); 

      for (final Transcript scoutNamesDescription : listymAwards) { 

       if (scoutNamesDescription.getSection().equals(storedName)){ 
        table.addCell(" "); 
       }else{ 
        storedName = scoutNamesDescription.getSection(); 
        table.addCell(scoutNamesDescription.getSection()); 
       } 
       table.addCell(scoutNamesDescription.getAwardName()); 

       Date awardedDate = df1.parse(scoutNamesDescription.getAwardedDate()); 
       String awardedString = df2.format(awardedDate); 
       table.addCell(awardedString); 
      } 
      preface.add(table); 
      document.add(preface); 
     } 
+0

Tous vos 'include's dans le paquet' 'server' ou shared'? – Adam

+0

Salut Adam, je crois que j'ai tous compris car je ne reçois aucun message d'erreur qui se produisent normalement quand ils ne sont pas là. – Glyn

+0

'DateTimeFormat' a deux versions: dans les paquets' com.google.gwt.i18n.client' et 'com.google.gwt.i18n.shared'. Le premier, le client doit être utilisé du côté client uniquement, la version partagée peut être utilisée côté client et côté serveur. Vérifiez cela avec soin. – Adam

Répondre

1

Vous ne pouvez pas utiliser le code GWT sur le côté serveur. Et dans ce cas, il n'y a pas besoin.

Utiliser des outils Java standard pour les dates de mise en forme: Convert java.util.Date to String