<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>java | www.valeriofinazzo.it</title>
	<atom:link href="http://www.valeriofinazzo.it/wordpress/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.valeriofinazzo.it/wordpress</link>
	<description>Il sito dell&#039;ingegnere Valerio Finazzo</description>
	<lastBuildDate>Thu, 09 Apr 2020 15:38:43 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.3</generator>
	<item>
		<title>JAVA &#8211; CONFIGURARE I MESSAGGI DI JAVAX.VALIDATATION</title>
		<link>http://www.valeriofinazzo.it/wordpress/2020/04/java-configurare-i-messaggi-di-javax-validatation/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 09 Apr 2020 15:37:14 +0000</pubDate>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[java]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=564</guid>

					<description><![CDATA[<p>Usare JAVAX.VALIDATION ha i suoi vantaggi, tramite delle comode annotation demandiamo al nostro sistema la funziona di validazione per le casistiche più comuni [crayon-641380da91984819014087/] che coprono la stragrande maggioranza dei casi. Quando il sistema riscontra l&#8217;errore restituisce il messaggio associato, es. not be not null Qualora volessimo agevolmente localizzare il messaggio è sufficiente creare un &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2020/04/java-configurare-i-messaggi-di-javax-validatation/" class="more-link">Continua la lettura di <span class="screen-reader-text">JAVA &#8211; CONFIGURARE I MESSAGGI DI JAVAX.VALIDATATION</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2020/04/java-configurare-i-messaggi-di-javax-validatation/">JAVA – CONFIGURARE I MESSAGGI DI JAVAX.VALIDATATION</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p>Usare JAVAX.VALIDATION ha i suoi vantaggi, tramite delle comode annotation demandiamo al nostro sistema la funziona di validazione per le casistiche più comuni</p>



<pre class="crayon-plain-tag">@NotNull
@NotEmpty
....</pre>



<p>che coprono la stragrande maggioranza dei casi.</p>



<p>Quando il sistema riscontra l&#8217;errore  restituisce il messaggio associato, es. not be not null</p>



<p>Qualora volessimo agevolmente localizzare  il messaggio è sufficiente creare un file ValidationMessages_it_IT.properties sotto la directory resources del nostro progetto maven e il gioco è fatto</p>



<p>Es. del file </p>



<p>javax.validation.constraints.NotNull.message=Obbligatorio<br>javax.validation.constraints.NotEmpty.message=Obbligatorio</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F04%2Fjava-configurare-i-messaggi-di-javax-validatation%2F&amp;linkname=JAVA%20%E2%80%93%20CONFIGURARE%20I%20MESSAGGI%20DI%20JAVAX.VALIDATATION" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F04%2Fjava-configurare-i-messaggi-di-javax-validatation%2F&amp;linkname=JAVA%20%E2%80%93%20CONFIGURARE%20I%20MESSAGGI%20DI%20JAVAX.VALIDATATION" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F04%2Fjava-configurare-i-messaggi-di-javax-validatation%2F&amp;linkname=JAVA%20%E2%80%93%20CONFIGURARE%20I%20MESSAGGI%20DI%20JAVAX.VALIDATATION" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F04%2Fjava-configurare-i-messaggi-di-javax-validatation%2F&amp;linkname=JAVA%20%E2%80%93%20CONFIGURARE%20I%20MESSAGGI%20DI%20JAVAX.VALIDATATION" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F04%2Fjava-configurare-i-messaggi-di-javax-validatation%2F&amp;linkname=JAVA%20%E2%80%93%20CONFIGURARE%20I%20MESSAGGI%20DI%20JAVAX.VALIDATATION" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F04%2Fjava-configurare-i-messaggi-di-javax-validatation%2F&#038;title=JAVA%20%E2%80%93%20CONFIGURARE%20I%20MESSAGGI%20DI%20JAVAX.VALIDATATION" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2020/04/java-configurare-i-messaggi-di-javax-validatation/" data-a2a-title="JAVA – CONFIGURARE I MESSAGGI DI JAVAX.VALIDATATION"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2020/04/java-configurare-i-messaggi-di-javax-validatation/">JAVA – CONFIGURARE I MESSAGGI DI JAVAX.VALIDATATION</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ECCEZIONI JAVA &#8211; org.springframework.jdbc.BadSqlGrammarException</title>
		<link>http://www.valeriofinazzo.it/wordpress/2018/10/eccezioni-java-org-springframework-jdbc-badsqlgrammarexception/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 07 Oct 2018 13:26:15 +0000</pubDate>
				<category><![CDATA[VARIE]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=521</guid>

					<description><![CDATA[<p>Ultimamente mi sono imbattuto in un problema interessante legato ai driver Oracle: una funzione rilasciata non funzionava nel nuovo ambiente e dava l&#8217;eccezione BadSqlGrammarException e più precisamente . [crayon-641380da926f2338335475/] Comincio l&#8217;analisi del problema e la segnalazione fa pensare che l&#8217;applicativo stia invocando in modo errato la function, che effettivamente in ingresso riceve 5 parametri e &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2018/10/eccezioni-java-org-springframework-jdbc-badsqlgrammarexception/" class="more-link">Continua la lettura di <span class="screen-reader-text">ECCEZIONI JAVA &#8211; org.springframework.jdbc.BadSqlGrammarException</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2018/10/eccezioni-java-org-springframework-jdbc-badsqlgrammarexception/">ECCEZIONI JAVA – org.springframework.jdbc.BadSqlGrammarException</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p>Ultimamente mi sono imbattuto in un problema interessante legato ai driver Oracle: una funzione rilasciata non funzionava nel nuovo ambiente e dava l&#8217;eccezione BadSqlGrammarException e più precisamente .</p><pre class="crayon-plain-tag">org.springframework.jdbc.BadSqlGrammarException: CallableStatementCallback; bad SQL grammar [{? = call GETREPORTGENERALE(?, ?, ?, ?)}];</pre><p>Comincio l&#8217;analisi del problema e la segnalazione fa pensare che l&#8217;applicativo stia invocando in modo errato la function, che effettivamente in ingresso riceve 5 parametri e non 4 come fa vedere il log. Rigenero il war pensando che sia stata installata una versione diversa ma il problema persiste. A questo punto penso che il problema possa essere lato db, pertanto rigenero gli script sql e vengono reinstallati nell&#8217;ambiente di riferimento. Niente da fare. Mi accorgo che la versione Oracle tra i 2 ambienti è differente, ma questo non dovrebbe spiegare l&#8217;errore. Non mi resta che controllare i 2 ambienti, in questo caso un tomcat 7 e mi accordo che  i 2 ambienti presentano versioni di driver oracle differenti. Il cliente aveva effettuato l&#8217;aggiornamento della versione Oracle alla 12 e di conseguenza aveva aggiornato la versione del driver Oracle, passando dalla 10 alla 12. Ecco individuato il problema, la chiamata falliva se fatta con il nuovo driver. La chiamata sfrutta la classe SimpleJdbcCall offerta da Spring</p><pre class="crayon-plain-tag">SimpleJdbcCall jdbcCall = new SimpleJdbcCall(getJdbcTemplate()).
withFunctionName("getReportGenerale").
returningResultSet("reportGenerali", new ReportMapper());</pre><p>Per risolvere il problema ho dovuto modificare il sorgente, rinunciare alla SimpleJdbcCall  e utilizzare la classica CallableStatement</p><pre class="crayon-plain-tag">CallableStatement prepareCall = getConnection().prepareCall(getReportGenerale);
prepareCall.registerOutParameter(1,OracleTypes.CURSOR);</pre><p>&nbsp;</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2018%2F10%2Feccezioni-java-org-springframework-jdbc-badsqlgrammarexception%2F&amp;linkname=ECCEZIONI%20JAVA%20%E2%80%93%20org.springframework.jdbc.BadSqlGrammarException" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2018%2F10%2Feccezioni-java-org-springframework-jdbc-badsqlgrammarexception%2F&amp;linkname=ECCEZIONI%20JAVA%20%E2%80%93%20org.springframework.jdbc.BadSqlGrammarException" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2018%2F10%2Feccezioni-java-org-springframework-jdbc-badsqlgrammarexception%2F&amp;linkname=ECCEZIONI%20JAVA%20%E2%80%93%20org.springframework.jdbc.BadSqlGrammarException" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2018%2F10%2Feccezioni-java-org-springframework-jdbc-badsqlgrammarexception%2F&amp;linkname=ECCEZIONI%20JAVA%20%E2%80%93%20org.springframework.jdbc.BadSqlGrammarException" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2018%2F10%2Feccezioni-java-org-springframework-jdbc-badsqlgrammarexception%2F&amp;linkname=ECCEZIONI%20JAVA%20%E2%80%93%20org.springframework.jdbc.BadSqlGrammarException" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2018%2F10%2Feccezioni-java-org-springframework-jdbc-badsqlgrammarexception%2F&#038;title=ECCEZIONI%20JAVA%20%E2%80%93%20org.springframework.jdbc.BadSqlGrammarException" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2018/10/eccezioni-java-org-springframework-jdbc-badsqlgrammarexception/" data-a2a-title="ECCEZIONI JAVA – org.springframework.jdbc.BadSqlGrammarException"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2018/10/eccezioni-java-org-springframework-jdbc-badsqlgrammarexception/">ECCEZIONI JAVA – org.springframework.jdbc.BadSqlGrammarException</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>JASPERREPORTS TUTORIAL &#8211; 6 &#8211; CREIAMO IL NOSTRO REPORT IN JAVA</title>
		<link>http://www.valeriofinazzo.it/wordpress/2014/06/jasperreports-tutorial-6-creiamo-il-nostro-report-in-java/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 19 Jun 2014 20:13:14 +0000</pubDate>
				<category><![CDATA[JASPERREPORTS]]></category>
		<category><![CDATA[ireport]]></category>
		<category><![CDATA[jasperreports]]></category>
		<category><![CDATA[java]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=150</guid>

					<description><![CDATA[<p>Nell&#8217;articolo di oggi vedremo come generare il nostro report in pdf partendo dal modello generato con Ireport. Il primo passo è quello di generare il nostro report a partire dal formato jrxml. Per fare questo JasperReports ci mette a disposizione la classe JasperCompileManager JasperReport jasperReport = JasperCompileManager.compileReport(&#8220;reportFromXml.jrxml&#8221;); Tale classe permette di compilare il report e &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2014/06/jasperreports-tutorial-6-creiamo-il-nostro-report-in-java/" class="more-link">Continua la lettura di <span class="screen-reader-text">JASPERREPORTS TUTORIAL &#8211; 6 &#8211; CREIAMO IL NOSTRO REPORT IN JAVA</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2014/06/jasperreports-tutorial-6-creiamo-il-nostro-report-in-java/">JASPERREPORTS TUTORIAL – 6 – CREIAMO IL NOSTRO REPORT IN JAVA</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p style="color: #0d293f;">Nell&#8217;articolo di oggi vedremo come generare il nostro report in pdf partendo dal modello generato con Ireport.</p>
<p style="color: #0d293f;">Il primo passo è quello di generare il nostro report a partire dal formato jrxml. Per fare questo JasperReports ci mette a disposizione la classe JasperCompileManager</p>
<p style="color: #0d293f;">JasperReport jasperReport = JasperCompileManager.compileReport(&#8220;reportFromXml.jrxml&#8221;);</p>
<p style="color: #0d293f;">Tale classe permette di compilare il report e ottenere un file .jasper, lo stesso file che otteniamo quando generiamo l&#8217;anteprima con Ireport.</p>
<p style="color: #0d293f;">A questo punto resta da riempire il report compilato con i dati che provengono da un datasource. Questo meccanismo viene realizzato dalla classe JasperFillManager</p>
<p style="color: #0d293f;">JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), ds );</p>
<p style="color: #0d293f;">La classe JasperFillManager mette a disposizione il metodo fillReport che permette di riempire il nostro report tramite una serie di parametri che vengono forniti tramite un oggetto di tipo Map e un datasource di tipo JRDataSource.</p>
<p style="color: #0d293f;">L&#8217;interfaccia JRDataSource è un&#8217;interfaccia che prevede la definizione di 2 metodi: il metodo next che permette di scorrere il datasource e il metodo getField che permette di recuperare la proprietà del bean del datasource.</p>
<p style="color: #0d293f;">Nel nostro esempio ho definito una semplice implementazione dell&#8217;interfaccia che permette di scorrere un elenco di libri e accedere ad alcune sue proprietà.</p>
<p></p><pre class="crayon-plain-tag">JRDataSource ds = new JRDataSource() {
	Collection&lt;Libro&gt; beanCollection = 
(Collection&lt;Libro&gt;) LibroFactory.getBeanCollection();
	private Iterator&lt;Libro&gt; iterator = beanCollection.iterator();
	private Libro libro = null; 
        int counter = 0;

	@Override
	public boolean next() throws JRException {
		if (counter&gt;=beanCollection.size())
			return false;
		libro = iterator.next();
		counter++;
		return true;
	}
	@Override
	public Object getFieldValue(JRField arg0) throws JRException {
		if (arg0.getName().equals("autore"))
			return libro.getAutore();
		if (arg0.getName().equals("id"))
			return libro.getId();
		if (arg0.getName().equals("titolo"))
			return libro.getTitolo();
		if (arg0.getName().equals("genere"))
			return libro.getGenere();
		return null;
		}
	};</pre><p></p>
<p style="color: #0d293f;">Il metodo next permette di scorrere il nostro datasource. Ritorna true se è presente un altro elemento all&#8217;interno del datasource, mentre il metodo getFieldValue permette di accedere alla singola proprietà del record.</p>
<p style="color: #0d293f;">A questo punto tramite la classe JasperExportManager possiamo estrarre il nostro report nel formato desiderato.</p>
<p style="color: #0d293f;">JasperExportManager.exportReportToPdfFile(jasperPrint, &#8220;c://Simple_Report.pdf&#8221;);</p>
<p style="color: #0d293f;"><a style="color: #2675b5;" title="Src per articolo" href="http://www.valeriofinazzo.it/joomla/file/JasperReports%20-%20Creiamo%20il%20nostro%20report%20in%20java.zip" target="_blank">Qui</a> trovate le classi per compilare il progetto</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fjasperreports-tutorial-6-creiamo-il-nostro-report-in-java%2F&amp;linkname=JASPERREPORTS%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20CREIAMO%20IL%20NOSTRO%20REPORT%20IN%20JAVA" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fjasperreports-tutorial-6-creiamo-il-nostro-report-in-java%2F&amp;linkname=JASPERREPORTS%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20CREIAMO%20IL%20NOSTRO%20REPORT%20IN%20JAVA" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fjasperreports-tutorial-6-creiamo-il-nostro-report-in-java%2F&amp;linkname=JASPERREPORTS%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20CREIAMO%20IL%20NOSTRO%20REPORT%20IN%20JAVA" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fjasperreports-tutorial-6-creiamo-il-nostro-report-in-java%2F&amp;linkname=JASPERREPORTS%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20CREIAMO%20IL%20NOSTRO%20REPORT%20IN%20JAVA" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fjasperreports-tutorial-6-creiamo-il-nostro-report-in-java%2F&amp;linkname=JASPERREPORTS%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20CREIAMO%20IL%20NOSTRO%20REPORT%20IN%20JAVA" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fjasperreports-tutorial-6-creiamo-il-nostro-report-in-java%2F&#038;title=JASPERREPORTS%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20CREIAMO%20IL%20NOSTRO%20REPORT%20IN%20JAVA" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2014/06/jasperreports-tutorial-6-creiamo-il-nostro-report-in-java/" data-a2a-title="JASPERREPORTS TUTORIAL – 6 – CREIAMO IL NOSTRO REPORT IN JAVA"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2014/06/jasperreports-tutorial-6-creiamo-il-nostro-report-in-java/">JASPERREPORTS TUTORIAL – 6 – CREIAMO IL NOSTRO REPORT IN JAVA</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
