Archivo de la categoria: ‘tomcat’

Cómo descromprimir un .war?

August 9th, 2008

Buenos días!

Estuve analizando las keywords con que entran a este sitio y una de ellas es “Como descomprimir un .war?”. Vamos al grano entonces!

Un war es un archivo (compreso) que posee una aplicación web dentro. (Siempre hablando en términos JAVA).

El formato .war es el mismo que el formato .zip, por lo que si renombramos nuestro archivo .war a .zip, podremos descomprimirlo con cualquier decompresor (WinZip, WinRar, 7z, etc..).

Creo que está de más decir que el proceso inverso también funciona.. El escenario sería algo como “Tengo mi aplicación web, corriendo en un (tomcat | jBoss | GlassFish | etc) y quiero redistribuirla en un .war”. Lo único que tengo que hacer es comprimir (en .zip) la aplicación y renombrarla a .war.

Otra cosilla importante, es que se revise bien la documentación que viene con el .war o se descomprima el mismo, e ir a leer el archivo META-INF/context.xml y WEB-INF/web.xml por si se requiere configurar algún recurso. Ésto también debe extenderse a los archivos de configuración que use la aplicación, es decir, si posee base de datos, revisar el host, nombre o schema de la db y la info de login; si poseemos log4j, revisar la ruta donde se archivarán los logs y el esquema de logueo, etc, etc.

Espero que les sirva!

Saludos

Blojsom SimpleSearch Exception in MS SQL Server

February 23rd, 2008

I have an issue with blojsom with MSSQL Server 2k and the mentioned functionality.

In detail:

Drivers:

First you need to use JTDS JDBC Driver instead of official MSSQL Driver, which does not support Hibernate.

Why?

Blojsom tries a case insensitive Like search in default Fetcher bean and the entry description fieldis created as “NTEXT” type in our DBMS. So, if you have any number in the entry description, simple search will broke.

How to solve this?

Download the blojsom source and implement your MSSQLFetcher class.

How i do it?

With blojsom source in your computer, create a project in your preferred java IDE. (This is optional, but a good practice, if you need to touch another file or develop some plugins you can use this project later, add it to cvs or svn, and reuse your code).

  1. Open file DatabaseFetcher.java in the org.blojsom.fetcher.database package
  2. Search the “public Entry[] findEntries(Blog blog, String query)” method
  3. Change wherever ilike appears to like (Most databases, uses a like sentence like a case insensitive statement)
  4. Compile and deploy (NO OVERRIDE THE DEFAULT CLASS!!, make another package to reuse in every MsSQL Server. Your class can be named as MsSQLDatabaseFetcher).
  5. Edit the blojsom.xml file on /WEB-INF/classes folder.
  6. Comment the default DatabaseFetcher implementation and configure your own implementation.
  7. Save, restart, and enjoy.

blojsom 3.2 en Tomcat 4.1

December 14th, 2007

Ayer pude configurar blojsom con Tomcat 4.1 y mySQL. Para los que no conocen blojsom, es una aplicación web, hecha en Java, para realizar blogs. Soporta blogs múltiples y se ve bastante bien.

Vamos al grano! Lo que hizo falta fue:

Teniendo tomcat y mySQL instalados, empezamos por descomprimir el war de blojsom. Ya sabemos que los war sin archivos .zip, asique renombralo a blojsom.zip y descomprimilo…

Nos logueamos en la base de datos y ejecutamos los siguientes 2 archivos para crear el schema de blojsom.

WEB-INF/classes/blojsom-mysql.sql
WEB-INF/classes/blojsom-full-initial-data-mysql.sql

Acto seguido, debemos configurar el recurso de la base de datos en la aplicación seteando el driver, url de conexión, usuario, password, etc. en:

WEB-INF/classes/blojsom-helper-beans-include.xml

Revisa el siguiente archivo para editar la configuración de blojsom, por defecto tiene la de mySQL:

WEB-INF/classes/blojsom.xml

Es hora de copiar el directorio blojsom a la carpeta webapps del tomcat e iniciar el tomcat.

Una vez iniciado, veremos por consola lo siguiente.

14/12/2007 09:30:25 org.apache.coyote.http11.Http11BaseProtocol init
INFO: Inicializando Coyote HTTP/1.1 en puerto http-8080
Starting service Tomcat-Standalone
Apache Tomcat/4.1.36
dic 14 09:30:32 DEBUG [main] filter.PageFilter - Initialized page filter (Root blog compatability: false)
dic 14 09:30:32 DEBUG [main] filter.FeedFilter - Initialized feed filter using default feed type: rss2
dic 14 09:30:36 DEBUG [main] resources.ResourceBundleResourceManager - Loaded resource bundle: org.blojsom.plugin.admin.resources.messages
dic 14 09:30:36 DEBUG [main] resources.ResourceBundleResourceManager - Initialized resource bundle resource manager
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Initialized simple event broadcaster
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.fetcher.database.DatabaseFetcher with process all events filter
dic 14 09:30:36 DEBUG [main] database.DatabaseFetcher - Initialized database fetcher
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.moderation.IPAddressModerationPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.language.LanguageSelectionPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.moderation.LinkSpamModerationPlugin with process all events filter
dic 14 09:30:36 ERROR [main] markdown.MarkdownPlugin - No Markdown execution string provided. Use initialization parameter: plugin-markdown-execution
dic 14 09:30:36 DEBUG [Thread-3] moblog.MoblogPlugin - Moblog plugin waking up and looking for new messages
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.moderation.OpenProxyModerationPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.common.RSSEnclosurePlugin with process all events filter
dic 14 09:30:36 DEBUG [main] common.RSSEnclosurePlugin - Initialized RSS enclosures plugin
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.moderation.SpamPhraseModerationPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.technorati.TechnoratiTagsPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.twitter.TwitterNotificationPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] twitter.TwitterNotificationPlugin - Initialized Twitter notification plugin
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.weblogsping.WeblogsPingPlugin with filter: org.blojsom.plugin.weblogsping.WeblogsPingPlugin$1
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.filter.XSSFilterPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.widget.admin.WidgetAdministrationPlugin with filter: org.blojsom.plugin.widget.admin.WidgetAdministrationPlugin$1
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.widget.ip.IPAddressWidget with filter: org.blojsom.plugin.widget.ip.IPAddressWidget$1
dic 14 09:30:36 DEBUG [Thread-4] admin.WidgetAdministrationPlugin - Registered widget: ip-widgetwith display name: Display Request IP Address
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.comment.CommentPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.trackback.TrackbackPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] event.SimpleEventBroadcaster - Added event listener: org.blojsom.plugin.pingback.PingbackPlugin with process all events filter
dic 14 09:30:36 DEBUG [main] pingback.PingbackPlugin - Initialized pingback plugin
dic 14 09:30:36 DEBUG [main] admin.FileUploadPlugin - Using temporary directory: /tmp
dic 14 09:30:36 DEBUG [main] admin.FileUploadPlugin - Using maximum upload size: 25000000
dic 14 09:30:36 DEBUG [main] admin.FileUploadPlugin - Using maximum memory size: 50000
dic 14 09:30:36 DEBUG [main] admin.FileUploadPlugin - Using accepted file types: image/jpeg, image/gif, image/png, video/x-msvideo, video/x-ms-asf, audio/x-mpegurl, audio/x-midi, video/quicktime, audio/mpeg, audio/x-mpeg, audio/wav, video/mpeg, application/vnd.rn-realmedia
dic 14 09:30:36 DEBUG [main] admin.FileUploadPlugin - Using resources directory: /resources/
dic 14 09:30:36 DEBUG [main] admin.FileUploadPlugin - Using invalid file extensions: .jsp, .jspf, .jspi, .jspx, .php, .cgi
dic 14 09:30:37 INFO  [main] database.DatabaseLoader - About to create blojsom database
dic 14 09:30:37 INFO  [main] database.DatabaseLoader - blojsom database alreadycreated
dic 14 09:30:37 DEBUG [main] servlet.BlojsomServlet - blojsom: All Your Blog Are Belong To Us
dic 14 09:30:37 DEBUG [Thread-3] moblog.MoblogPlugin - Moblog plugin off to take a nap
dic 14 09:30:37 DEBUG [main] event.SimpleEventBroadcaster - Using shared listeners map
dic 14 09:30:37 DEBUG [main] event.SimpleEventBroadcaster - Using shared listener to handler map
dic 14 09:30:37 DEBUG [main] event.SimpleEventBroadcaster - Initialized simple event broadcaster
dic 14 09:30:37 DEBUG [main] database.DatabaseFetcher - Initialized database fetcher
dic 14 09:30:37 DEBUG [main] resources.ResourceBundleResourceManager - Loaded resource bundle: org.blojsom.plugin.admin.resources.messages
dic 14 09:30:37 DEBUG [main] resources.ResourceBundleResourceManager - Initialized resource bundle resource manager
dic 14 09:30:37 DEBUG [main] xmlrpc.BlojsomXMLRPCServlet - blojsom XML-RPC: All Your Blog Are Belong To Us
dic 14 09:30:37 DEBUG [main] event.SimpleEventBroadcaster - Using shared listeners map
dic 14 09:30:37 DEBUG [main] event.SimpleEventBroadcaster - Using shared listener to handler map
dic 14 09:30:37 DEBUG [main] event.SimpleEventBroadcaster - Initialized simple event broadcaster
dic 14 09:30:37 DEBUG [main] database.DatabaseFetcher - Initialized database fetcher
dic 14 09:30:37 DEBUG [main] comment.CommentAPIServlet - blojsom Comment API: All Your Blog Are Belong To Us
14/12/2007 09:30:38 org.apache.coyote.http11.Http11BaseProtocol start
INFO: Arrancando Coyote HTTP/1.1 en puerto http-8080
14/12/2007 09:30:38 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
14/12/2007 09:30:38 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/47  config=null

Esto nos indica que el servidor detectó y desplegó blojsom sin errores.

Ahora, si vas a http://localhost:8080/blojsom/blog/default/ verás el blog.

Para acceder al login de administración debes ir a http://localhost:8080/blojsom/blog/default/?flavor=admin y usar usuario ‘default’ y contraseña ‘default’ para entrar.