<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-882533030998519918</id><updated>2011-08-29T10:50:58.001-07:00</updated><category term='string'/><category term='debug'/><category term='blackboard'/><category term='cadena'/><category term='Varios'/><category term='punto'/><category term='MySQL'/><category term='PostgreSQL'/><category term='jmesa'/><category term='Proxy'/><category term='class'/><category term='replaceAll'/><category term='OpenCms'/><category term='decimales'/><category term='BBDD'/><category term='eclipse'/><category term='dot'/><category term='step'/><category term='gradebook'/><category term='Java'/><category term='filter'/><category term='Struts 2'/><category term='replace'/><title type='text'>Código Inútil</title><subtitle type='html'>El código fuente que nunca compila...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codigoinutil.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://codigoinutil.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>LoiX</name><uri>http://www.blogger.com/profile/06186907837901229330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-n8ZaieuDEF0/Te07X0vGNEI/AAAAAAAAAdI/D6aCN4QEuIM/s220/Sin%2Bt%25C3%25ADtulo.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-882533030998519918.post-91152057601459099</id><published>2010-12-02T01:24:00.000-08:00</published><updated>2010-12-02T01:24:01.240-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='BBDD'/><title type='text'>Migrando PostgreSQL a MySQL: MySQL Migration Toolkit</title><content type='html'>Este va a ser un pequeño tutorial de cómo migrar una base de datos de PostgreSQL a MySQL usando la herramienta gratuita &lt;b&gt;MySQL Migration Toolkit&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;No vamos a entrar en detalles, sólo los parámetros necesarios para que la aplicación conecte correctamente y algún punto importante a tener en cuenta.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Seguimos después del salto...&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Esta aplicación se incluye en el paquete de herramientas gráficas de usuario de MySQL que muchos de los que estáis leyendo ésto conoceréis.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.&lt;/b&gt; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_a2RXs6Hn98A/TPYhIXhDj-I/AAAAAAAAATE/ksGd7KhrFU8/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="491" src="http://2.bp.blogspot.com/_a2RXs6Hn98A/TPYhIXhDj-I/AAAAAAAAATE/ksGd7KhrFU8/s640/1.PNG" width="640" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&amp;nbsp;2.&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_a2RXs6Hn98A/TPYhJA_o8hI/AAAAAAAAATI/ozyLdqrdIhY/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="491" src="http://1.bp.blogspot.com/_a2RXs6Hn98A/TPYhJA_o8hI/AAAAAAAAATI/ozyLdqrdIhY/s640/2.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;3. &lt;/b&gt;Establecemos los parámetros de conexión a la base de datos de la cual queremos extraer los datos. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_a2RXs6Hn98A/TPYhJsev7sI/AAAAAAAAATM/fWFIOyfkbv4/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="494" src="http://2.bp.blogspot.com/_a2RXs6Hn98A/TPYhJsev7sI/AAAAAAAAATM/fWFIOyfkbv4/s640/3.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;4. &lt;/b&gt;Lo mismo, con los parámetros de la base de datos destino. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_a2RXs6Hn98A/TPYhKUtV_4I/AAAAAAAAATQ/a8yAVldUqQM/s1600/4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="494" src="http://1.bp.blogspot.com/_a2RXs6Hn98A/TPYhKUtV_4I/AAAAAAAAATQ/a8yAVldUqQM/s640/4.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;5. &lt;/b&gt;Hay un error debido a que no se ha podido conectar con la base de datos de origen. El problema se resuelve copiando el driver JDBC de nuestra base de datos (en este caso PostgreSQL) en la carpeta &lt;b&gt;MySQL Tools for 5.0/java/lib/&lt;/b&gt;. Cerramos y abrimos de nuevo la aplicación para que cargue el controlador. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_a2RXs6Hn98A/TPYhLLgXySI/AAAAAAAAATU/z2YBlTGBUss/s1600/5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="490" src="http://1.bp.blogspot.com/_a2RXs6Hn98A/TPYhLLgXySI/AAAAAAAAATU/z2YBlTGBUss/s640/5.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;blockquote&gt;&lt;i&gt;&lt;b&gt;Error obtenido: &lt;/b&gt;Connecting to source database and retrieve schemata names.&lt;br /&gt;The list of schema names could not be retrieved (error: 0).&lt;br /&gt;ReverseEngineeringGeneric.getSchemata :org.postgresql.Driver&lt;/i&gt;... &lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. &lt;/b&gt;Carpeta donde debemos copiar la librería: &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_a2RXs6Hn98A/TPYhLmnRFbI/AAAAAAAAATY/zNO8KrriDyc/s1600/6.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="478" src="http://2.bp.blogspot.com/_a2RXs6Hn98A/TPYhLmnRFbI/AAAAAAAAATY/zNO8KrriDyc/s640/6.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;7. &lt;/b&gt;Volvemos a ejecutar el asistente y en esta ocasión el test de conexión será satisfactorio.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_a2RXs6Hn98A/TPYhMK-34lI/AAAAAAAAATc/1xBiYuvfKKg/s1600/7.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="484" src="http://4.bp.blogspot.com/_a2RXs6Hn98A/TPYhMK-34lI/AAAAAAAAATc/1xBiYuvfKKg/s640/7.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;8.&lt;/b&gt; Debemos de seleccionar el/los esquema/s a importar.&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_a2RXs6Hn98A/TPdj37qObII/AAAAAAAAATk/smVmi8Zh2lA/s1600/8.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="488" src="http://2.bp.blogspot.com/_a2RXs6Hn98A/TPdj37qObII/AAAAAAAAATk/smVmi8Zh2lA/s640/8.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_a2RXs6Hn98A/TPYhMo9r1GI/AAAAAAAAATg/M57Y06KwSPk/s1600/8.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;9.&lt;/b&gt; El asistente también nos da la posibilidad de seleccionar las tablas que deseamos importar.&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_a2RXs6Hn98A/TPYhHkEWCrI/AAAAAAAAATA/pOeuP-tXWJQ/s1600/9.PNG" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="430" src="http://4.bp.blogspot.com/_a2RXs6Hn98A/TPYhHkEWCrI/AAAAAAAAATA/pOeuP-tXWJQ/s640/9.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Es probable que obtengamos algún error en la conversión de tipos, pero teniendo el script para generar la base de datos en MySQL que nos generará el asistente, podemos modificarlo rápidamente para corregir esos pequeños errores.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;** Entrada publicada también en &lt;b&gt;http://pollodegomaconpolea.blogspot.com/2010/12/migrando-postgresql-mysql-mysql.html &lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/882533030998519918-91152057601459099?l=codigoinutil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codigoinutil.blogspot.com/feeds/91152057601459099/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://codigoinutil.blogspot.com/2010/12/migrando-postgresql-mysql-mysql.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/91152057601459099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/91152057601459099'/><link rel='alternate' type='text/html' href='http://codigoinutil.blogspot.com/2010/12/migrando-postgresql-mysql-mysql.html' title='Migrando PostgreSQL a MySQL: MySQL Migration Toolkit'/><author><name>LoiX</name><uri>http://www.blogger.com/profile/06186907837901229330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-n8ZaieuDEF0/Te07X0vGNEI/AAAAAAAAAdI/D6aCN4QEuIM/s220/Sin%2Bt%25C3%25ADtulo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_a2RXs6Hn98A/TPYhIXhDj-I/AAAAAAAAATE/ksGd7KhrFU8/s72-c/1.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-882533030998519918.post-3164326578453821623</id><published>2010-11-02T03:36:00.000-07:00</published><updated>2010-11-02T03:37:34.493-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='decimales'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='dot'/><category scheme='http://www.blogger.com/atom/ns#' term='cadena'/><category scheme='http://www.blogger.com/atom/ns#' term='replaceAll'/><category scheme='http://www.blogger.com/atom/ns#' term='string'/><category scheme='http://www.blogger.com/atom/ns#' term='replace'/><category scheme='http://www.blogger.com/atom/ns#' term='punto'/><title type='text'>Eliminando puntos de una cadena de texto (String)</title><content type='html'>Nunca me había encontrado con un problema tan aparentemente chorra, pero con una solución no tan inmediata como me esperaba.&lt;br /&gt;&lt;br /&gt;Teníamos que eliminar los decimales de unas celdas de excel que contienen un valor del tipo:&lt;i&gt; XYZ.0&lt;/i&gt;. Por ejemplo: 237.0; 20.0; etc. El decimal siempre era 0, y había que tratar los números como texto (nada de pasar a entero ya que en algunas celdas, los valores podían ser alfanuméricos).&lt;br /&gt;&lt;br /&gt;La solución más inmediata es hacer esto:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;cadena = "237.0";&lt;/i&gt;&lt;br /&gt;&lt;i&gt;cadena = cadena.replaceAll(".0","");&lt;/i&gt;&lt;/blockquote&gt;Pero esto genera problemas; si la cadena por ejemplo fuese del tipo &lt;i&gt;"hola 10"&lt;/i&gt;.&lt;br /&gt;Finalmente la solución pasa por utilizar expresiones regulares. Tenéis un artículo muy bueno en castellano &lt;b&gt;&lt;a href="http://www.programacion.com/articulo/expresiones_regulares_en_java_127"&gt;aquí.&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;La solución para nuestro caso, y para que sólo sustituya a los carácteres ".0" (puntoCero) sería:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;cadena = cadena.replaceAll("[.]0", "");&lt;/i&gt;&lt;/blockquote&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/882533030998519918-3164326578453821623?l=codigoinutil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codigoinutil.blogspot.com/feeds/3164326578453821623/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://codigoinutil.blogspot.com/2010/11/eliminando-puntos-de-una-cadena-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/3164326578453821623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/3164326578453821623'/><link rel='alternate' type='text/html' href='http://codigoinutil.blogspot.com/2010/11/eliminando-puntos-de-una-cadena-de.html' title='Eliminando puntos de una cadena de texto (String)'/><author><name>LoiX</name><uri>http://www.blogger.com/profile/06186907837901229330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-n8ZaieuDEF0/Te07X0vGNEI/AAAAAAAAAdI/D6aCN4QEuIM/s220/Sin%2Bt%25C3%25ADtulo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-882533030998519918.post-2212740505540513685</id><published>2010-10-27T07:36:00.000-07:00</published><updated>2010-10-27T08:00:28.539-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='class'/><category scheme='http://www.blogger.com/atom/ns#' term='filter'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='step'/><title type='text'>Descartando clases en el debug desde Eclipse</title><content type='html'>Me acaba de ocurrir que haciendo debug de una aplicación&amp;nbsp; hecha con Struts 2, entraba en clases que para mí eran irrelevantes: DefaultActionInvocation, clases de librerías de Apache, etc.&lt;br /&gt;&lt;br /&gt;Hacer debug no es muy divertido cuando estamos ante un proyecto que no conocemos bien, la aplicación pega mil y un saltos entre clases y si además, se mete donde no debe, puede resultar un tanto desquiciante.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Eclipse &lt;/b&gt;nos facilita un poco la vida, permitíendonos seleccionar las clases y/o paquetes por los cuales no deseamos que el debug se detenga; algo así como una lista negra.&lt;br /&gt;&lt;br /&gt;Simplemente entramos en &lt;b&gt;Windows &lt;/b&gt;=&amp;gt; &lt;b&gt;Preferences =&lt;/b&gt;&amp;gt; &lt;b&gt;Java &lt;/b&gt;=&amp;gt; &lt;b&gt;Debug &lt;/b&gt;=&amp;gt; &lt;b&gt;Step Filtering &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_a2RXs6Hn98A/TMg4WFcNwUI/AAAAAAAAARo/yRkmcQ-jxMc/s1600/step_filters.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="576" src="http://1.bp.blogspot.com/_a2RXs6Hn98A/TMg4WFcNwUI/AAAAAAAAARo/yRkmcQ-jxMc/s640/step_filters.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;Se nos abrirá una ventana donde podremos agregar todos los paquetes y las clases donde nuestro debug&lt;b&gt; no se debe detener:&lt;/b&gt; sencillo y eficaz. &lt;br /&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;div style="background-color: #ece7c5; border-color: rgb(38, 108, 111); border-style: solid; border-width: 1px 2.5px 2px 0.5px; color: #010122; display: none; font-family: sans-serif; font-size: 10pt; padding: 1pt 3pt; position: absolute; z-index: 1000;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/882533030998519918-2212740505540513685?l=codigoinutil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codigoinutil.blogspot.com/feeds/2212740505540513685/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://codigoinutil.blogspot.com/2010/10/descartando-clases-en-el-debug-desde.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/2212740505540513685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/2212740505540513685'/><link rel='alternate' type='text/html' href='http://codigoinutil.blogspot.com/2010/10/descartando-clases-en-el-debug-desde.html' title='Descartando clases en el debug desde Eclipse'/><author><name>LoiX</name><uri>http://www.blogger.com/profile/06186907837901229330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-n8ZaieuDEF0/Te07X0vGNEI/AAAAAAAAAdI/D6aCN4QEuIM/s220/Sin%2Bt%25C3%25ADtulo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_a2RXs6Hn98A/TMg4WFcNwUI/AAAAAAAAARo/yRkmcQ-jxMc/s72-c/step_filters.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-882533030998519918.post-7862830142608473332</id><published>2010-07-22T03:55:00.000-07:00</published><updated>2010-07-22T04:52:42.790-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gradebook'/><category scheme='http://www.blogger.com/atom/ns#' term='blackboard'/><title type='text'>Mostrando las calificaciones de usuarios de BlackBoard LS</title><content type='html'>Una breve descripción de lo que es &lt;span style="font-weight:bold;"&gt;Blackboard Learning System&lt;/span&gt; (a partir de ahora BB o BBLS) por cortesía de Wikipedia.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;Blackboard Learning System&lt;/span&gt;, un entorno de manejo de cursos. Actualmente esta plataforma está siendo usada a nivel mundial por diversas instituciones relacionadas con la educación, tal es el caso del Servicio Nacional de Aprendizaje SENA en Colombia. También la utilizan la Universidad Nacional de Colombia, la Universidad de los andes y la Pontificia Universidad Javeriana. En México tiene presencia desde hace más de 10 años en diversas universidades e instituciones como el Instituto Tecnológico y de Estudios Superiores de Monterrey (ITESM).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hemos estado desarrollando un conector que nos sirva para comunicarnos más facilmente con Blackboard y así realizar operaciones del tipo: editar un usuario, inscribir un usuario en un curso, borrar un usuario, etc.&lt;br /&gt;&lt;br /&gt;Casi todas estas operaciones se realizan a través de conexiones HTTP y el envío de ficheros xml con la información.&lt;br /&gt;&lt;br /&gt;Uno de los puntos más interesantes ha sido la utilización de la API de BB para obtener datos. Para ello, la API se conecta con el WebService correspondiente y así podemos utilizar todas las operaciones que se nos permite.&lt;br /&gt;&lt;br /&gt;Aquí el código más interesante:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt; &lt;blockquote&gt;   ContextSDK ctxt = new ContextSDK(new URL(serviceUrlContext));&lt;br /&gt;    SessionVO session = ctxt.login("user", "pass", lcid);&lt;br /&gt;    GradeBookService gradeBook = new GradeBookSDK(new URL(serviceUrlGradeBook));&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El usuario debe de ser un usuario de BBLS con permisos de instructor sobre el curso sobre el que queremos consultar las calificaciones.&lt;br /&gt;&lt;br /&gt;Obtenemos el SectionID de la Sección o Curso (sectionId y sectionSource son el source.id y el source.data respectivamente)&lt;br /&gt;&lt;br /&gt;    &lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;long sectionLongId = ctxt.getLearningContextIdBySourcedId("sectionId"," sectionSource");&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Obtenemos el columnID de la columna del GradeBook por ejemplo, el ID de la columna "Final"&lt;br /&gt;&lt;br /&gt;    &lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;SectionColumnVO columnsVO[] = gradeBook.getSectionColumns(session, sectionLongId, 2);&lt;br /&gt;    for(int i = 0; i &lt; columnsVO . length; i++){&lt;br /&gt;                       if (columnsVO[i].getLabel().equalsIgnoreCase("Final")){&lt;br /&gt;                                 columnsLongId = columnsVO[i].getId();&lt;br /&gt;                               &lt;br /&gt;                        }&lt;br /&gt;    }&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Obtención del memberID a partir del UserId de blackboard:&lt;br /&gt;&lt;br /&gt;    &lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;long memberIds[] = gradeBook.getSectionStudentIDs(session, sectionLongId);&lt;br /&gt;    SubjectVO[] members = gradeBook.getMemberDescriptions(session ,memberIds);&lt;br /&gt;    for (int i=0; i &lt; members . length; i++){&lt;br /&gt;       if (members[i] . getWebctID() . equalsIgnoreCase("NombreDeUsuario")){&lt;br /&gt;            memberId = memberIds[i];&lt;br /&gt;       }&lt;br /&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Finalmente, obtenemos las calificaciones&lt;br /&gt;&lt;br /&gt;    &lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;ColumnValue cValues[] = gradeBook.getMemberGradeValues(session, sectionLongId, memberId, columnLongId);&lt;br /&gt;&lt;br /&gt;    for(int i = 0; i &lt; cValues.length; i++) { if(cValues[i] != null) { System.out.println("La calificación "+columns+" de "+username+" es "+cValues[i].getValue()); } }&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Disculpad si se me escapa algo, el código fuente ha sido adaptado de una función que recibía una lista de columnas y una lista de miembros matriculados en un curso.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/882533030998519918-7862830142608473332?l=codigoinutil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codigoinutil.blogspot.com/feeds/7862830142608473332/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://codigoinutil.blogspot.com/2010/07/mostrando-las-calificaciones-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/7862830142608473332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/7862830142608473332'/><link rel='alternate' type='text/html' href='http://codigoinutil.blogspot.com/2010/07/mostrando-las-calificaciones-de.html' title='Mostrando las calificaciones de usuarios de BlackBoard LS'/><author><name>LoiX</name><uri>http://www.blogger.com/profile/06186907837901229330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-n8ZaieuDEF0/Te07X0vGNEI/AAAAAAAAAdI/D6aCN4QEuIM/s220/Sin%2Bt%25C3%25ADtulo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-882533030998519918.post-7515717879592247074</id><published>2010-02-05T03:05:00.000-08:00</published><updated>2010-02-05T03:10:21.139-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Proxy'/><title type='text'>Conectar a un WebService desde Java con proxy</title><content type='html'>El otro día nos encontramos con un problema en un proyecto que tiraba de un Web Service. Nuestro entorno de desarollo se conectaba a internet a través de un proxy, y por lo tanto no lograbamos realizar la conexión correctamente. &lt;br /&gt;&lt;br /&gt;La solución es bien sencilla:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;  &lt;br /&gt;Properties systemProperties = System.getProperties();&lt;br /&gt;systemProperties.setProperty("http.proxyHost",PROXY_IP);&lt;br /&gt;systemProperties.setProperty("http.proxyPort",PROXY_PORT);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;De esta forma nos aseguramos que la conexión se realizará a través del proxy que le indiquemos. Sencillo y eficaz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/882533030998519918-7515717879592247074?l=codigoinutil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codigoinutil.blogspot.com/feeds/7515717879592247074/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://codigoinutil.blogspot.com/2010/02/conectar-un-webservice-desde-java-con.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/7515717879592247074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/7515717879592247074'/><link rel='alternate' type='text/html' href='http://codigoinutil.blogspot.com/2010/02/conectar-un-webservice-desde-java-con.html' title='Conectar a un WebService desde Java con proxy'/><author><name>LoiX</name><uri>http://www.blogger.com/profile/06186907837901229330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-n8ZaieuDEF0/Te07X0vGNEI/AAAAAAAAAdI/D6aCN4QEuIM/s220/Sin%2Bt%25C3%25ADtulo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-882533030998519918.post-4836208562509641318</id><published>2009-10-18T09:23:00.000-07:00</published><updated>2010-01-25T01:08:34.630-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Struts 2'/><category scheme='http://www.blogger.com/atom/ns#' term='jmesa'/><title type='text'>JMesa y Struts 2</title><content type='html'>Hola a tod@s,&lt;br /&gt;&lt;br /&gt;hoy voy a dejar aquí un pequeño tutorial, paso a paso, de cómo hacer funcionar JMesa en Struts 2 (extendible a cualquier otro framework).&lt;br /&gt;&lt;br /&gt;1º Descargamos las librerías y recursos de &lt;a href="http://code.google.com/p/jmesa/"&gt;JMesa&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2º JMesa hace uso de &lt;a href="http://jquery.com/"&gt;JQuery&lt;/a&gt;, con lo cual también necesitaremos bajarnos el JS de su página web.&lt;br /&gt;&lt;br /&gt;3º Dentro de nuestro directorio de recursos JS copiamos las librerías: "jmesa.js", "jquery-1.3.2.js", "jquery.jmesa.js".&lt;br /&gt;&lt;br /&gt;4º Igualmente copiamos las imágenes que se adjuntan en el zip de JMESA y los 2 CSS para los estilos.&lt;br /&gt;&lt;br /&gt;5º Añadimos los JAR a nuestra biblioteca de librerías del proyecto.&lt;br /&gt;&lt;br /&gt;6º Copiamos el fichero jmesa.tld en /Webcontent/WEB-INF/tld/jmesa.tld y &lt;a href="http://www.box.net/shared/i5anxers4b"&gt;añadimos la siguiente información en nuestro web.xml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7º En /Webcontent/WEB-INF/ crearemos el fichero "jmesa.properties" donde podemos configurar diversos aspectos de JMesa como el número de resultados por página, etc.&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;html.toolbar.maxRowsDroplist.increments=12,24,36&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;limit.rowSelect.maxRows=12&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;8º Por último sólo debemos hacer uso de las bondades de JMesa, para ello tenéis un sencillo ejemplo &lt;a href="http://www.box.net/shared/4t2gz4d5d4"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A tener en cuenta:&lt;br /&gt;&lt;br /&gt;- El orden de importación de los js es &lt;span style="font-weight: bold;"&gt;importante&lt;/span&gt;. Seguid el orden del ejemplo.&lt;br /&gt;- Para indicarle a JMesa los distintos atributos de nuestros objetos que queremos listar simplemente tenemos que indicarlo con el mismo nombre en  &lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;htmlColumn property="&lt;span style="font-weight: bold;"&gt;atributo&lt;/span&gt;"&lt;/span&gt;&lt;jmesa:htmlcolumn property="&lt;span style="&gt;&lt;jmesa:htmlcolumn property="&lt;span style="&gt;&lt;jmesa:htmlcolumn property="&lt;span style="&gt;.&lt;br /&gt;&lt;br /&gt;- Los atributos de los beans deben de tener sus respectivos getter().&lt;br /&gt;- Importante incluir la función "&lt;span style="font-weight: bold;"&gt;onInvokeAction&lt;/span&gt;(id)" como se ve en el ejemplo.&lt;br /&gt;&lt;br /&gt;Resultado:&lt;br /&gt;&lt;/jmesa:htmlcolumn&gt;&lt;/jmesa:htmlcolumn&gt;&lt;/jmesa:htmlcolumn&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_a2RXs6Hn98A/SttHVd3SbuI/AAAAAAAAAB4/ZkW2wFpXxTQ/s1600-h/jmesa.PNG"&gt;&lt;img style="cursor: pointer; width: 264px; height: 323px;" src="http://1.bp.blogspot.com/_a2RXs6Hn98A/SttHVd3SbuI/AAAAAAAAAB4/ZkW2wFpXxTQ/s400/jmesa.PNG" alt="" id="BLOGGER_PHOTO_ID_5393983412825648866" border="0" /&gt;&lt;/a&gt;&lt;jmesa:htmlcolumn property="&lt;span style="&gt;&lt;jmesa:htmlcolumn property="&lt;span style="&gt;&lt;jmesa:htmlcolumn property="&lt;span style="&gt;&lt;br /&gt;&lt;/jmesa:htmlcolumn&gt;&lt;/jmesa:htmlcolumn&gt;&lt;/jmesa:htmlcolumn&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EDIT&lt;/span&gt;:&lt;br /&gt;Adjunto &lt;a href="http://www.megaupload.com/?d=RPB7UA37"&gt;aquí&lt;/a&gt; los 2 archivos anteriores por si no os funciona el servidor de www.box.net.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/882533030998519918-4836208562509641318?l=codigoinutil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codigoinutil.blogspot.com/feeds/4836208562509641318/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://codigoinutil.blogspot.com/2009/10/jmesa-y-struts-2.html#comment-form' title='8 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/4836208562509641318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/4836208562509641318'/><link rel='alternate' type='text/html' href='http://codigoinutil.blogspot.com/2009/10/jmesa-y-struts-2.html' title='JMesa y Struts 2'/><author><name>LoiX</name><uri>http://www.blogger.com/profile/06186907837901229330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-n8ZaieuDEF0/Te07X0vGNEI/AAAAAAAAAdI/D6aCN4QEuIM/s220/Sin%2Bt%25C3%25ADtulo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_a2RXs6Hn98A/SttHVd3SbuI/AAAAAAAAAB4/ZkW2wFpXxTQ/s72-c/jmesa.PNG' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-882533030998519918.post-4044483437260072117</id><published>2009-08-21T10:19:00.000-07:00</published><updated>2010-07-26T08:03:55.311-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenCms'/><title type='text'>Modificar campos de un XMLCONTENT en OpenCms</title><content type='html'>Puede pasarnos, que necesitemos modificar de buenas a primera el contenido de varios XMLCONTENT en OpenCms. Si los contenidos son pocos no hay problema de hacerlo a mano; pero si son cientos o miles de recursos a modificar entonces sería conveniente que tiraramos de alguna función que nos ayude en la tarea.&lt;br /&gt;&lt;br /&gt;Os adjunto el código que hice hace unos días para dicha tarea (cualquier sugerencia es bien recibida):&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;%@ page contentType="text/html"%&gt;&lt;br /&gt;&lt;%@ page  &lt;/span&gt;pageEncoding="UTF-8"%&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;%@ page  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;import="java.io.*,java.util.*,&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;java.net.*,java.sql.*" %&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;%@ page &lt;/span&gt;&lt;span style="font-size:85%;"&gt;import="org.opencms.jsp.*" %&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;%@ page  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;import="org.opencms.file.*" %&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;%@ page  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;import="org.opencms.file.&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;types.*" %&gt;&lt;br /&gt;&lt;%@ page import="java.util.*" %&gt;&lt;br /&gt;&lt;%@ page import="org.opencms.xml.&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;content.*" %&gt;&lt;br /&gt;&lt;%@ page import="org.opencms.xml.*, org.opencms.xml.types.*" %&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;%@ taglib prefix="cms" uri="&lt;a href="http://www.opencms.org/taglib/cms" target="_blank"&gt;http://www.opencms.org/&lt;wbr&gt;taglib/cms&lt;/a&gt;" %&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;%&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;CmsJspActionElement cms = new CmsJspActionElement( pageContext, request, response );&lt;br /&gt;CmsJspXmlContentBean cjxc = new CmsJspXmlContentBean(&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;pageContext, request, response);&lt;br /&gt;CmsObject cmsObject = cms.getCmsObject();&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:85%;"&gt;CmsProject offlineProject = cmsObject.readProject("&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;Offline");&lt;br /&gt;CmsResource recurso = null;&lt;br /&gt;CmsFile templateFile = null;&lt;br /&gt;CmsXmlContent template = null;&lt;br /&gt;Locale lcl = java.util.Locale.ENGLISH;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;//En este caso vamos a modificar 2 campos del XMLCONTENT&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;I_CmsXmlContentValue contentValueCuerpo;&lt;br /&gt;I_CmsXmlContentValue contentValueDescripcion;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;//Ruta donde se encuentran los XMLCONTENT a modificar&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;String rutaCarpetas = "/noticias/";&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;try {&lt;br /&gt;List lista = new ArrayList();&lt;br /&gt;I_CmsXmlContentContainer icms = cjxc.contentload("&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;allInSubTreeDateReleasedDesc", rutaCarpetas + "|noticias", false);&lt;br /&gt;Iterator it = icms.getCollectorResult().&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;iterator();&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;while (it.hasNext()) {&lt;br /&gt;    &lt;br /&gt;recurso = (CmsResource) it.next(); &lt;br /&gt;templateFile = new CmsFile(recurso);&lt;br /&gt;out.println("R: "+recurso.getRootPath().&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;replace(cms.getRequestContext(&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;).getSiteRoot(),"") +"&lt;br /&gt;");&lt;br /&gt;cmsObject.lockResource(&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;recurso.getRootPath().replace(&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;cms.getRequestContext().&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;getSiteRoot(),""));&lt;br /&gt;templateFile = cmsObject.readFile(recurso.&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;getRootPath().replace(cms.&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;getRequestContext().&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;getSiteRoot(),""));&lt;br /&gt;template = CmsXmlContentFactory.&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;unmarshal(cmsObject, templateFile);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;String aux_cuerpo = "";&lt;br /&gt;String aux_descripcion = "";&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  //Función template.getValue("Campo_del_XSD",Locale)&lt;/span&gt;&lt;br /&gt;contentValueCuerpo = template.getValue("Cuerpo", lcl);&lt;br /&gt;aux_cuerpo = contentValueCuerpo.&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;getPlainText(cmsObject);&lt;br /&gt;aux_cuerpo = aux_cuerpo.replace("smaller","&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;");&lt;br /&gt;contentValueCuerpo.&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;setStringValue(cmsObject,aux_&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;cuerpo);&lt;br /&gt;&lt;br /&gt;contentValueDescripcion = template.getValue("&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;Descripcion", lcl);&lt;br /&gt;aux_descripcion = contentValueDescripcion.&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;getPlainText(cmsObject);&lt;br /&gt;aux_descripcion = aux_descripcion.replace("&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;smaller","");&lt;br /&gt;contentValueDescripcion.&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;setStringValue(cmsObject,aux_&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;descripcion);&lt;br /&gt;&lt;br /&gt;templateFile.setContents(&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;template.marshal());&lt;br /&gt;cmsObject.writeFile( templateFile);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;out.println("Recurso: "+recurso.getRootPath().&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;replace(cms.getRequestContext(&lt;/span&gt;&lt;wbr&gt;&lt;span style="font-size:85%;"&gt;).getSiteRoot(),"")+ "actualizado&lt;br /&gt;");&lt;br /&gt;&lt;br /&gt;} &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;}catch (Exception e){&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:85%;"&gt;      }                      &lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style="font-size:85%;"&gt;%&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/882533030998519918-4044483437260072117?l=codigoinutil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codigoinutil.blogspot.com/feeds/4044483437260072117/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://codigoinutil.blogspot.com/2009/08/modificar-campos-de-un-xmlcontent-en.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/4044483437260072117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/4044483437260072117'/><link rel='alternate' type='text/html' href='http://codigoinutil.blogspot.com/2009/08/modificar-campos-de-un-xmlcontent-en.html' title='Modificar campos de un XMLCONTENT en OpenCms'/><author><name>LoiX</name><uri>http://www.blogger.com/profile/06186907837901229330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-n8ZaieuDEF0/Te07X0vGNEI/AAAAAAAAAdI/D6aCN4QEuIM/s220/Sin%2Bt%25C3%25ADtulo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-882533030998519918.post-7352855107866166605</id><published>2009-08-21T09:24:00.000-07:00</published><updated>2009-08-21T10:32:25.831-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Varios'/><title type='text'>Presentación</title><content type='html'>Hola a todos y bienvenidos a mi blog, uno más en la casi infinita blogosfera.&lt;br /&gt;&lt;br /&gt;Me llamo Luis (&lt;span style="font-style: italic;"&gt;- Hola Luiiiiiiss&lt;/span&gt;),  vivo en un pueblo de la provincia de Sevilla. Voy camino de los 27 años, soy programador informático y tengo una mosca posada en la pierna.&lt;br /&gt;&lt;br /&gt;A los 8 años, un amigo de mis padres me regaló una agenda de IBM; en el que además de poder apuntar todos los cumpleaños de los amigos y demás fechas importantes, empecé a sentir curiosidad por aquellas grandes máquinas que podía observar en las primeras páginas, aquellas placas verdes llenas de circuitos y aquellos discos en el que se almacenaban 1 y 0...&lt;br /&gt;&lt;br /&gt;Mi primer ordenador fue un antiguo 80286 que me había autoregalado con los ahorrillos que había conseguido trabajando por aquel entonces en el campo y ayudando en el bar a mi tio.&lt;br /&gt;&lt;br /&gt;Los misterios que escondían aquellos oscuros comandos de MS-DOS, ver como se podía modificar el juego de Gorilla con QBasic y aquella maravillosa "interfaz" que era Windows 3.1 hizo que me metiera hasta el día de hoy, de lleno en el mundo de la informática.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_a2RXs6Hn98A/So7ONNJPWqI/AAAAAAAAABg/wtxKlPl3_l8/s1600-h/qbasic-gorilla-screenshot.gif"&gt;&lt;img style="cursor: pointer; width: 320px; height: 175px;" src="http://4.bp.blogspot.com/_a2RXs6Hn98A/So7ONNJPWqI/AAAAAAAAABg/wtxKlPl3_l8/s320/qbasic-gorilla-screenshot.gif" alt="" id="BLOGGER_PHOTO_ID_5372458131761617570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Fueron pasando los años y en el momento que pude fui orientando mis estudios hacia las ingenierías. Hasta llegar a la Universidad de Huelva en el año 2000 en la carrera de I.Técnica Informática que aún tengo pendiente. Tuve también la oportunidad de hacer varios cursos, entre ellos un FPO de Desarrollo de Aplicaciones Informáticas de 984h (el cual fue muy productivo) y un Máster en Formación Tecnológica en Desarrollo SAP ABAP/IV.&lt;br /&gt;&lt;br /&gt;Actualmente me encuentro trabajando con JAVA y herramientas de software libre, sobre el cual me gustaría centrar mi formación en los próximos años.&lt;br /&gt;&lt;br /&gt;Y dicho ésto, se puede intuir sobre lo que va a ser éste blog. Ni más ni menos que código fuente que iré realizando, o me iré encontrando a lo largo de mi vida de programador con la simple finalidad de tener un lugar al que acudir cuando necesite algo.&lt;br /&gt;&lt;br /&gt;Un saludo&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/882533030998519918-7352855107866166605?l=codigoinutil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codigoinutil.blogspot.com/feeds/7352855107866166605/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://codigoinutil.blogspot.com/2009/08/presentacion.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/7352855107866166605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/882533030998519918/posts/default/7352855107866166605'/><link rel='alternate' type='text/html' href='http://codigoinutil.blogspot.com/2009/08/presentacion.html' title='Presentación'/><author><name>LoiX</name><uri>http://www.blogger.com/profile/06186907837901229330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/-n8ZaieuDEF0/Te07X0vGNEI/AAAAAAAAAdI/D6aCN4QEuIM/s220/Sin%2Bt%25C3%25ADtulo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_a2RXs6Hn98A/So7ONNJPWqI/AAAAAAAAABg/wtxKlPl3_l8/s72-c/qbasic-gorilla-screenshot.gif' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
