<?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>El blog de Cesar Vivero</title>
	<atom:link href="http://sixservix.com/blog/cvivero/feed/" rel="self" type="application/rss+xml" />
	<link>http://sixservix.com/blog/cvivero</link>
	<description>Just another Sixservix.com Blogs weblog</description>
	<lastBuildDate>Thu, 11 Feb 2010 14:04:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Glassfish: Eliminar el aviso PWC4011&#8230;.</title>
		<link>http://sixservix.com/blog/cvivero/2010/02/11/glassfish-eliminar-el-aviso-pwc4011/</link>
		<comments>http://sixservix.com/blog/cvivero/2010/02/11/glassfish-eliminar-el-aviso-pwc4011/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 14:04:04 +0000</pubDate>
		<dc:creator>Cesar Vivero</dc:creator>
				<category><![CDATA[Sin categorÃ­a]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[PWC4011]]></category>

		<guid isPermaLink="false">http://sixservix.com/blog/cvivero/?p=28</guid>
		<description><![CDATA[Si tienes el fichero de log (server.log) del servidor de aplicaciones Glasssfish lleno de avisos como este: Unable to set request character encoding to UTF-8 from context, because request parameters have already been read, or ServletRequest.getReader() has already been called Esto es debido a que el contenedor web esta intentando poner una codificaciÃ³n a la [...]]]></description>
			<content:encoded><![CDATA[<p>Si tienes el fichero de log (server.log) del servidor de aplicaciones Glasssfish lleno de avisos como este:</p>
<p><em>Unable to set request character encoding to UTF-8 from context,  because request parameters have already been read, or ServletRequest.getReader() has already been called</em></p>
<p>Esto es debido a que el contenedor web esta intentando poner una codificaciÃ³n a la request muy tarde en el ciclo de vida de la request. De momento no hay soluciÃ³n a este bug y lo que hay que hacer es ignorarlo. Â¿CÃ³mo? Pues muy facil, accediendo a la administraciÃ³n del Glassfish ir a Aplication Server -&gt; Logging -&gt; Log Levels y poner &#8220;SEVERE&#8221; al nivel de log de Web Container</p>
<p><img src="http://sixservix.com/blog/cvivero/files/2010/02/confserver-1024x797.jpg" alt="confserver" width="600" height="400" class="aligncenter size-large wp-image-31" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sixservix.com/blog/cvivero/2010/02/11/glassfish-eliminar-el-aviso-pwc4011/feed/</wfw:commentRss>
		<slash:comments>3580</slash:comments>
		</item>
		<item>
		<title>Parseo de ficheros con longitud fija</title>
		<link>http://sixservix.com/blog/cvivero/2009/10/02/parseo-de-ficheros-con-longitud-fija/</link>
		<comments>http://sixservix.com/blog/cvivero/2009/10/02/parseo-de-ficheros-con-longitud-fija/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 10:19:52 +0000</pubDate>
		<dc:creator>Cesar Vivero</dc:creator>
				<category><![CDATA[Sin categorÃ­a]]></category>
		<category><![CDATA[ficheros planos]]></category>
		<category><![CDATA[flatpack]]></category>

		<guid isPermaLink="false">http://sixservix.com/blog/cvivero/?p=5</guid>
		<description><![CDATA[Existen en Java muchos artÃ­culos sobre las Ãºltimas tecnologÃ­as y sobre complicadas librerÃ­as.Â  A veces nos dejamos llevar por las tendencÃ­as y utilizamos frameworks o librerÃ­as que para proporcionarnos una pequeÃ±a funcionalidad tienen una utilizaciÃ³n muy complicada y suceptible a errores. Hoy quiero hablar sobre una sencilla libreria que considero muy Ãºtil:Â  flatpack. Esta librerÃ­a [...]]]></description>
			<content:encoded><![CDATA[<p>Existen en Java muchos artÃ­culos sobre las Ãºltimas tecnologÃ­as y sobre complicadas librerÃ­as.Â  A veces nos dejamos llevar por las tendencÃ­as y utilizamos frameworks o librerÃ­as que para proporcionarnos una pequeÃ±a funcionalidad tienen una utilizaciÃ³n muy complicada y suceptible a errores.</p>
<p>Hoy quiero hablar sobre una sencilla libreria que considero muy Ãºtil:Â  <a title="flatpack" href="http://sourceforge.net/projects/flatpack/">flatpack</a>. Esta librerÃ­a permite extraer informaciÃ³n de ficheros planos donde la informaciÃ³n viene separada por delimitadores o por una longitud fija. Tiene capacidad para manejar ficheros CSV, EXCEL CSV, etc&#8230;Â  En un fichero xml se proporciona de una manera sencilla y desacoplada del cÃ³digo el mapeo de datos.</p>
<h1><span style="color: #3366ff">EJEMPLO DE UTILIZACION</span></h1>
<p><span style="color: #3366ff"><span style="color: #000000">Nada mejor que un ejemplo para ver lo sencillo y facil que hace flatpack el parseo de fichero planos. Vamos a realizar el parseo de un fichero con estructura cabecera lineas muy comÃºn.</span></span></p>
<pre><span style="color: #3366ff"><span style="color: #000000">C0008382022092009053768Â  IPSUMÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  FRANCISCO JAVIER PEREZ PEREZ
AVDA. GASPAR
L000100040000010012Â Â Â Â Â  RON BARCELO ANEJO 0.70Â Â Â Â Â Â Â  .Â Â Â  +00002+0000024
L000200040001510012Â Â Â Â Â  CUTTY SARK 0.70Â Â Â Â Â Â Â Â Â Â Â Â Â Â  .Â Â Â  +00003+0000036
C0008382122092009053768  LOREM Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â   FRANCISCO JAVIER </span></span><span style="color: #3366ff"><span style="color: #000000">PEREZ PEREZ</span></span><span style="color: #3366ff"><span style="color: #000000">Â Â
AVDA. GASPAR
L000100040003140006Â Â Â Â Â  GINEBRA MASTER'S 0,70Â Â Â Â Â Â Â Â  .Â Â Â  +00005+0000030
C0008382222092009053768  SIT AMED Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  FRANCISCO JAVIER </span></span><span style="color: #3366ff"><span style="color: #000000">PEREZ PEREZ</span></span><span style="color: #3366ff"><span style="color: #000000">Â Â
AVDA. GASPAR
L000100040006010006Â Â Â Â Â  JACK DANIEL'SÂ Â Â  0,70LÂ Â Â Â Â Â Â  .Â Â Â  +00002+0000012Â Â  

</span></span></pre>
<p><span style="color: #3366ff"><span style="color: #000000">Este es el fichero que deseamos procesar para ello genermos el siguiente xml:</span></span></p>
<pre>&lt;PZMAP&gt;
    &lt;RECORD id="cabecera" startPosition="1" endPosition="1" indicator="C"&gt;
    	&lt;COLUMN name="cab" length="1" /&gt;
        &lt;COLUMN name="ident" length="8" /&gt;
       Â &lt;COLUMN name="fecha" length="8" /&gt;
	&lt;COLUMN name="dataformat" length="6" /&gt;
	&lt;COLUMN name="nombre" length="35" /&gt;
	&lt;COLUMN name="nombreComercial" length="35" /&gt;
	&lt;COLUMN name="direccion" length="35" /&gt;
	&lt;COLUMN name="ciudad length="25" /&gt;
	&lt;COLUMN name="zipcode" length="5" /&gt;
	&lt;COLUMN name="comentario" length="60" /&gt;
	&lt;COLUMN name="supedido" length="10" /&gt;
	&lt;COLUMN name="fecha2" length="10" /&gt;
	&lt;COLUMN name="flag" length="1" /&gt;
	&lt;COLUMN name="identicket" length="13" /&gt;
    &lt;/RECORD&gt;
	&lt;COLUMN name="line" length="1" /&gt;
        &lt;COLUMN name="lineNumber" length="4" /&gt;
	&lt;COLUMN name="familia" length="4" /&gt;
	&lt;COLUMN name="articulo" length="6" /&gt;
	&lt;COLUMN name="formato" length="4" /&gt;
	&lt;COLUMN name="tipoDoc" length="2" /&gt;
	&lt;COLUMN name="param" length="4" /&gt;
	&lt;COLUMN name="desArticulo" length="35" /&gt;
	&lt;COLUMN name="sign" length="1" /&gt;
	&lt;COLUMN name="cantidad" length="5" /&gt;
&lt;/PZMAP&gt;</pre>
<p><span style="color: #3366ff"><span style="color: #000000"><strong>Nota:</strong> Es importe que el fichero xml vengan indicados todos los campos que pueden venir enÂ  el fichero plano aunque despuÃ©s no los vayamos a procesar.</span></span></p>
<p><span style="color: #3366ff"><span style="color: #000000">Ahora el cÃ³digo donde se ve los sencillo que es realmene parsear este fichero:</span></span></p>
<p>Parser pzparser = DefaultParserFactory.getInstance().newFixedLengthParser(<span style="color: #0000ff"><em>fichero xml</em></span>,<span style="color: #0000ff"> <em>fichero a procesar</em></span>);</p>
<p>pzparser.setIgnoreParseWarnings(true);<br />
pzparser.setIgnoreExtraColumns(true);<br />
DataSet ds = pzparser.parse();</p>
<p>while(ds.next()){<br />
try{<br />
if (ds.isRecordID(&#8220;cabecera&#8221;)) {<br />
ds.getString(&#8220;nombreComercial&#8221;);<br />
&#8230;&#8230;.<br />
}<br />
else {<br />
String line = ds.getString(&#8220;line&#8221;);</p>
<p>if (StringUtils.isNotEmpty(line) &amp;&amp; &#8220;L&#8221;.equals(line)){</p>
<p>ds.getString(&#8220;familia&#8221;);</p>
<p>&#8230;&#8230;&#8230;</p>
<p>}<br />
}</p>
<h1><span style="color: #3366ff">INSTALACION</span></h1>
<p><span style="color: #3366ff"><span style="color: #000000">Se necesita los siguientes jars:</span></span></p>
<ul>
<li><span style="color: #3366ff"><span style="color: #000000">flatpack-3.1.1.jar</span></span></li>
<li><span style="color: #3366ff"><span style="color: #000000">slf4j-api-1.5.8.jar</span></span></li>
<li><span style="color: #3366ff"><span style="color: #000000">slf4j-log4j12-1.5.8.jar<br />
</span></span></li>
</ul>
<p><span style="color: #3366ff"><span style="color: #000000">Y ya podemos procesar nuestro fichero plano. Este es un pequeÃ±o ejemplo de las posibidades que nos ofrece flatpack en una tarea todavÃ­a muy comÃºn hoy en dÃ­a&#8230;<br />
</span></span></p>
<p><span style="color: #3366ff"><span style="color: #000000"> </span></span></p>
<p><span style="color: #3366ff"><span style="color: #000000"><br />
</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://sixservix.com/blog/cvivero/2009/10/02/parseo-de-ficheros-con-longitud-fija/feed/</wfw:commentRss>
		<slash:comments>8946</slash:comments>
		</item>
		<item>
		<title>Primera entrada en el blog</title>
		<link>http://sixservix.com/blog/cvivero/2009/07/23/primera-entrada-en-el-blog/</link>
		<comments>http://sixservix.com/blog/cvivero/2009/07/23/primera-entrada-en-el-blog/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 11:33:50 +0000</pubDate>
		<dc:creator>Cesar Vivero</dc:creator>
				<category><![CDATA[Sin categorÃ­a]]></category>

		<guid isPermaLink="false">http://sixservix.com/blog/cvivero/2009/07/23/primera-entrada-en-el-blog/</guid>
		<description><![CDATA[Prueba]]></description>
			<content:encoded><![CDATA[<p>Prueba</p>
]]></content:encoded>
			<wfw:commentRss>http://sixservix.com/blog/cvivero/2009/07/23/primera-entrada-en-el-blog/feed/</wfw:commentRss>
		<slash:comments>5521</slash:comments>
		</item>
	</channel>
</rss>

