468x60
Visualizzazione post con etichetta programmazione. Mostra tutti i post
Visualizzazione post con etichetta programmazione. Mostra tutti i post

venerdì 27 marzo 2015

Ivy e Jasper Reports

Jasper Reports utilizza delle dipendenze che per qualche motivo non si trovano sul repository. Per risolvere il problema ho dovuto configurare Ivy nel seguente modo:

ivy.xml
 <dependency org="net.sf.jasperreports" name="jasperreports" rev="6.0.3" conf="*->default" />  


ivysettings.xml
 <ibiblio name="jaspersoft-third-party" usepoms="true" m2compatible="true"  
 root="http://jaspersoft.artifactoryonline.com/jaspersoft/third-party-ce-artifacts" />  

martedì 27 gennaio 2015

Vaadin Visual Editor su Windows 8.1

Per risolvere il problema aggiungere la seguente riga al file eclipse.ini
-Dorg.eclipse.swt.browser.XULRunnerPath=C:\

venerdì 19 settembre 2014

Utilizzare i Bookmarks in Eclipse

Una utilissima caratteristica di Eclipse, un pò nascosta, sono i Bookmarks. Essi consentono di tenere traccia dei posti importanti nel codice e tornarci su in un secondo momento.

Per aggiungere un bookmark basta cliccare sul menu Edit | Add Bookmark…

venerdì 6 dicembre 2013

Device Android offline su Eclipse

Durante il debug di app Android su dispositivo alcune volte mi è capitato di vedere il device offline. Sono riuscito a risolverlo nel seguente modo:
  • At shell prompt restart adb by issuing the command adb kill-server followed by adb start-server
  • Disable and re-enable USB Debugging on the phone
  • Rebooting the phone if it still doesn't work

giovedì 3 maggio 2012

Path di webapps su Tomcat

Il path assoluto della web application, all'interno di una Servlet, è possibile ottenerlo nel seguente modo:
javax.servlet.ServletContext.getRealPath("/");
Se invece dobbiamo risalire al path assoluto da una classe che non sia una Servlet, possiamo farlo attraverso la variabile di sistema catalina.home, la quale identifica il path assoluto della root di Tomcat:
System.getProperty("catalina.home") + "/" + webapps;

lunedì 23 aprile 2012

Parametri opzionali in BIRT

E' possibile passare dei parametri opzionali ai reports BIRT. Per farlo bisogna eseguire uno script beforeOpen prima dell'apertura del dataset interessato. Ecco un esempio di codice:
if(params["nome_parametro"].value) {    this.queryText += " AND parametro='"+params[" nome_parametro "]+"'";}

Reports con Vaadin

La migliore soluzione che ho trovato al momento per integrare reports in applicazioni web Vaadin è stata di avvalermi di BIRT. Inizialmente avevo tentato l'embedding di reports Jasper, ma dopo una serie di problemi di visualizzazione ho optato per BIRT, il quale mette a disposizione out-of-the-box un'ottima e leggera applicazione web per la visualizzazione di reports con comodissime funzioni quali esportazione del report in diversi formati, esportazione dei dati, stampa, form inserimento parametri per reports parametrici... Inoltre è disponibile un'ottima documentazione, un'ampia community, ed un ottimo report designer al pari di iReport di Jasper.

giovedì 19 aprile 2012

Visualizzare un date picker in BIRT

La pagina di input dei parametri in BIRT di default non ha il date picker per inserire le date. Vediamo come fare per aggiungerlo:

- Scaricare JSCal2-1.9 da http://www.dynarch.com/projects/calendar/download/1.9/ ed estrarre il contenuto sul web viewer nella directory /birt/webcontent/birt.

- Modifichiamo il file birt/webcontent/birt/pages/layout/FramesetFragment.jsp, aggiungendo le seguenti righe di codice prima del tag </HEAD>
<link rel="stylesheet" href="birt/JSCal2-1.9/src/css/jscal2.css" type="text/css"><link rel="stylesheet" href="birt/JSCal2-1.9/src/css/border-radius.css" type="text/css">
<link rel="stylesheet" href="birt/JSCal2-1.9/src/css/win2k/win2k.css" type="text/css"><script src="birt/JSCal2-1.9/src/js/jscal2.js" type="text/javascript"></script><script src="birt/JSCal2-1.9/src/js/lang/it.js" type="text/javascript"></script>
- Modifichiamo il file birt/webcontent/birt/pages/parameter/TextBoxParameterFragment.jsp, aggiungendo le seguenti righe di codice a fine pagina prima del tag /TD>
<%if(parameterBean.getParameter().getDataType()==7 || parameterBean.getParameter().getDataType()==4) {%><button id="<%=parameterBean.getName()%>_calendar-trigger"...</button><script type="text/javascript">Calendar.setup({inputField : "<%=parameterBean.getName()%>",trigger : "<%=parameterBean.getName()%>_calendar-trigger",
onSelect : function() { this.hide() }});</script><%}%>

venerdì 2 settembre 2011

PermGen space error in Eclipse

Alcune volte, dopo aver installato dei plugin in Eclipse 3.x, mi sono imbattuto in questo errore: PermGen space error.

Per risolverlo ho dovuto modificare il file eclipse.ini nel seguente modo:

- eliminate le righe:
--launcher.XXMaxPermSize
256m

- aggiunta la riga -XX:MaxPermSize=128m, in modo da avere a fine file:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XX:MaxPermSize=128m

giovedì 17 marzo 2011

Generare JPA Entities con Eclipse

Il Reverse Engineering di JPA Entities da database pensavo fosse possibile solo con Netbeans, invece ho scoperto come fare anche con Eclipse. Vediamo come...

Step #1: Creare il Datasource su Eclipse
  1. Creare la Definizione del MySQL JDBC Driver
  2. Creare la Connessione MySQL JDBC
Window--> Open Perspective--> Database Development Perspective



Click destro sul nodo "Databases"--> New



Scegliere "Generic JDBC Connection"



Scegli il driver corrispondente alla tua versione di MySQL, es. MySQL JDBC 5.0 e clicca sul bottone Add



Punta Eclipse al path del driver MySQL JDBC



Digita le proprietà della connessione JDBC e testa la connettività



Step #2: Creare un Eclipse JPA Project

  1. Creare la definizione dell'App Server (puntare Eclipse all'installazione dell'App Server)
  2. Creare il JPA Project
File--> New--> Project--> JPA Project



Clicca sul bottone New nella sezione Target Runtime



Puntare Eclipse sulla cartella di installazione di Glassfish



Scegli Opzioni su JPA Project



Continua col wizard e vai alla JPA perspective



Step #3: Reverse-Engineer delle JPA Entities dal DB

Sulla JPA Perspective: Click destro su Progetto--> JPA Tools--> Generate Entities



Scegli il JDBC Datasource e lo Schema



Scegli le tabelle, ed il gioco è fatto!

venerdì 28 gennaio 2011

GWT Designer

gwt-banner

GWT Designer è uno strumento per la costruzione di interfacce per il framework GWT, il quale permette con pochi click di creare form e altri componenti grafici, utilizzando esclusivamente una palette grafica lasciando allo strumento la generazione del codice Java. GWT Designer è stato sviluppato come plugin di Eclipse e delle sue varianti (MyEclipse, RAD,…) ed utilizza il GEF frameworf di Eclipse per la visualizzazione e la gestione della visualizzazione grafica. Questo strumento è stato sviluppato da Instantiations acquisita da Google ad agosto 2010 e rilasciato come free software insieme ad altri prodotti Java della stessa software house.

L’installazione è alquanto semplice basta andare in Help->Install New Software e specificare il repository da dove scaricare il plugin (cliccando su Add…), il repository cambia a seconda della versione di Eclipse installata:

Eclipse 3.6 (Helios)
http://dl.google.com/eclipse/inst/d2gwt/latest/3.6

Eclipse 3.5 (Galileo)
http://dl.google.com/eclipse/inst/d2gwt/latest/3.5

Eclipse 3.4 (Ganymede)
http://dl.google.com/eclipse/inst/d2gwt/latest/3.4


Ps. Cerco sviluppatori GWT per collaborazioni, contattatemi su csaffi [at] tiscali(dot)it

Google Web Toolkit

gwt-logo

Google Web Toolkit (GWT) è un toolkit di sviluppo creato per poter sviluppare complesse applicazioni browser-based. La sua pecurialità è quella di permettere lo sviluppo di applicazioni web interattive senza dover conoscere linguaggi come Javascript o essere esperti di tecnologie come Ajax, ma conoscendo soltanto il linguaggio di programmazione Java. In sostanza GWT permette di sviluppare applicazioni Ajax-enabled scrivendo codice in linguaggio Java, che tramite l’SDK di GWT, viene compilato in codice Javascript, ottimizzato e compatibile con tutti i principali browser disponibili.

Ps. Cerco sviluppatori GWT per collaborazioni, contattatemi su csaffi [at] tiscali(dot)it

mercoledì 10 novembre 2010

Ottenere la connessione JDBC da un EntityManager

Vediamo come ottenere la connessione JDBC da un EntityManager

- Con Toplink
Connection jdbcConnection = ((oracle.toplink.essentials.ejb.cmp3.EntityManager) entityManager).getServerSession().getDefaultConnectionPool().acquireConnection().getConnection();

- Con EclipseLink
java.sql.Connection jdbcConnection = entityManager.unwrap(java.sql.Connection.class);

lunedì 8 novembre 2010

Deploy su singolo JAR con Netbeans

Ecco un ottimo tutorial su come effettuare il deploy su un unico file JAR di un'applicazione con Netbeans http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/

venerdì 29 ottobre 2010

findJAR.com - utilissimo motore di ricerca per Classi e JAR

findJAR.com è un utilissimo motore di ricerca per cercare i file JAR a partire dal nome della classe o viceversa.

lunedì 25 ottobre 2010

Ripristinare connessione al db dopo caduta di servizio

Utilizzando Toplink come persistence provider, mi chiedevo come fosse possibile ripristinare la connessione al database dopo una caduta di servizio.

Trovato la soluzione!

Il problema era dovuto al fatto che Toplink non ha un controllo automatico delle connessioni inattive. E' possibile risolvere il problema in due modi:
1) implementando l'interfaccia ExceptionHandler per catturare il fallimento della connessione e riconnettersi
2) passando da Toplink ad EclipseLink


Siccome Toplink è ormai rimpiazzato da EclipseLink, come si può leggere sul sito della Oracle http://www.oracle.com/technology/products/ias/toplink/jpa/index.html, ho deciso di adottare la strategia (2)

venerdì 22 ottobre 2010

Jasper Report - caricare un'immagine da JAR

Con Jasper Report è possibile caricare un'immagine da un file JAR, con il seguente codice:

<imageexpression class="java.lang.String"></imageexpression>

giovedì 14 ottobre 2010

Background tasks con Netbeans - senza eventi

Ecco come creare un background task con Netbeans - senza eventi:


public Task myMethod() {


Task mT = new myTask(DesktopApplication.getApplication());
ApplicationContext appC = Application.getInstance().getContext();
TaskMonitor tM = appC.getTaskMonitor();
TaskService tS = appC.getTaskService();
tS.execute(mT);
tM.setForegroundTask(mT);


return mT;
}

Catturare l'eccezione OptimisticLockException

Ecco come catturare l'eccezione OptimisticLockException

Throwable th = rex.getCause();
if(th instanceof javax.persistence.OptimisticLockException) {
   System.out.println("Attenzione: il record risulta essere stato modificato dall'ultima lettura!);
}

JPA retrieve autogenerated keys

Assumendo di aver mappato @Id nella tua Entity con @GeneratedValue(strategy=IDENTITY) e creato la tua tabella con AUTO_INCREMENT sul campo chiave, l'id sarà assegnato al tuo object al commit.

Potrai accedere all'id dal tuo object dopo il commit. Se ne hai bisogno prima del commit, puoi chiamare flush() per assegnare l'id.
468x60

Cerca su Google

Cerca nel Blog con Google