Actualmente Dreamweaver CS5 no reconoce los archivos con extensión GSP (Groovy Server Pages) los cuales se utilizan mucho cuando desarrollas aplicaciones con Grails (son los equivalentes a los JSP de las aplicaciones Java tradicionales), esto provoca que no se reconozcan los tags GSP y pues el diseño en algunas ocasiones se vuelve imposible.
Estuve leyendo 2 artículos en los que resuelven esto, dichos artículos están en inglés así que se me ocurrió realizar una traducción aunque con algunas modificaciones basadas en lo que a mi me funcionó.
Los links a los artículos: article1, article2.
Aquí lo que hice:
1. Agregar la extensión .gsp para que sea reconocida por el editor del Dreamweaver, para ello hay que editar los siguientes archivos:
<Directorio de Instalacion de Dreamweaver>\configuration\Extensions.txt
<Directorio de Datos de la aplicación>\en_US\configuration\Extensions.txt
En mi caso:
C:\Archivos de programa\Adobe\Adobe Dreamweaver CS5\configuration\Extensions.txt
C:\Documents and Settings\Ramiro\Datos de programa\Adobe\Dreamweaver CS5\en_US\Configuration\Extensions.txt
a) Agregar en la primera línea justo antes del texto :All Documents el texto GSP, es decir la primera linea debe de quedar de la siguiente manera:
...,GSP:All Documents
Donde obviamente los puntos suspensivos ... indican que simplemente agregué la palabra ,GSP a lo que ya había en la línea antes de la palabra :All Documents
b) Agregar al final de ese mismo archivo la linea:
GSP:Groovy Server Pages
Al guardar este archivo ya quedó configurado el Dreamweaver para reconocer la extensión como un documento de formato válido para editar, sin embargo todavía no reconocerá los tags GSP que es el objectivo principal.
2. Ahora hay que configurar el Dreamweaver para que le de significado a los GSP
Hay que editar un archivo xml que se encuentran en la siguiente ruta:
<Directorio de Instalacion de Dreamweaver>\configuration\DocumentTypes\MMDocumentTypes.xml
En mi caso:
C:\Archivos de programa\Adobe\Adobe Dreamweaver CS5\configuration\DocumentTypes\MMDocumentTypes.xml
Agregamos el siguiente nodo xml al final dentro del contenido del nodo <documenttypes>
<documenttype id="GSP" servermodel="JSP" internaltype="Dynamic" winfileextension="gsp" macfileextension="gsp" file="Default.gsp" writebyteordermark="false" mimetype="text/html">
<TITLE>GSP</TITLE>
<description>Groovy Server Pages (GSP) document</description>
<dtdcontext>html</dtdcontext>
</documenttype>
Con esto Dreamweaver entenderá de que se tratan estos archivos.
3. Crear un template para nuevos archivos GSP
Para que al crear un nuevo archivo aparezca un template por defecto, simplemente hay que crear un archivo llamado en la siguiente ruta:
<Directorio de Instalacion de Dreamweaver>\configuration\DocumentTypes\NewDocuments\Default.gsp
En mi caso:
C:\Archivos de programa\Adobe\Adobe Dreamweaver CS5\configuration\DocumentTypes\NewDocuments\Default.gsp
Como un gsp es en si un html dinámico podemos usar el mismo template que tienen los archivo html (o puedes crearlo a tu gusto), entonces puedes simplemente copiar el archivo Default.html que está en el mismo directorio poniéndole el nombre Default.gsp.
4. Importar el tag library de GSP
Este es el punto más importante, pues es el que hace que el Dreamweaver no tome erroneamente los tags GSP, para esto hay que descargar el tag library para Dreamweaver desde el siguiente link: GSPTagLibrary el cual es un zip.
a) Dentro del zip hay una carpeta llamada gsp, hay que copiarla al directorio:
<Directorio de Instalacion de Dreamweaver>\configuration\TagLibraries
En mi caso:
C:\Archivos de programa\Adobe\Adobe Dreamweaver CS5\configuration\TagLibraries
b) Editar el archivo xml <Directorio de Instalacion de Dreamweaver>\configuration\TagLibraries\TagLibraries.vtm
Hay que agregar el contenido del archivo gspTagLibrary.vtm que se encuentra dentro del zip, este archivo contiene un nodo xml llamado taglibrary el cual pondremos como último nodo dentro del tag <taglibraries> del archivo TagLibraries.vtm que estamos editando.
Una vez agregado hay que sustituir la siguiente línea:
<taglibrary name="GSP" doctypes="HTML,JSP,GSP" id="DWTagLibrary_GSP" prefix="<g:">
por la línea:
<taglibrary name="GSP tags" doctypes="GSP" id="DWTagLibrary_GSP" prefix="<g:">
Después localiza en el mismo archivo TagLibraries.vtm que estás editando un nodo <taglibrary> que tenga el siguiente atributo: id="DWTagLibrary_html", en este nodo hay que agregar el texto GSP en el atributo doctypes
5. Habilitar la función de colorear sintaxis para los tags GSP
En los archivos
<Directorio de Instalacion de Dreamweaver>\configuration\CodeColoring\CodeColoring.xml
<Directorio de Datos de la aplicación>\en_US\configuration\CodeColoring\CodeColoring.xml
En mi caso son:
C:\Archivos de programa\Adobe\Adobe Dreamweaver CS5\configuration\CodeColoring\CodeColoring.xml
C:\Documents and Settings\Ramiro\Datos de programa\Adobe\Dreamweaver CS5\en_US\Configuration\CodeColoring\CodeColoring.xml
a) Hay que reemplazar el texto ,JSP, por ,JSP,GSP, incluyendo las comas
b) Reemplazar la línea:
<sampleText doctypes="JSP,GSP">
por la línea:
<sampleText doctypes="JSP,GSP">
Y listo, ya puedes trabajar con tus GSP normalmente en Dreamweaver
domingo, marzo 04, 2012
miércoles, enero 11, 2012
Forzar el stop de un servicio en Windows XP
El día de hoy se me presentó el problema de que un servicio (Telephony) por alguna razón no podía ser detenido en mi sistema usando la opción stop en el administrador de servicios (services.msc) de Win XP, simplemente se queda la barra de avance indicando que está esperando a que termine, pero después de un tiempo me mandaba el mensaje con un error 1053 de que el servicio no estaba respondiendo por lo cual no se pudo detener.
Me puse a investigar como poder hacerlo de manera forzada y esto es lo que encontré en dos sencillos pasos:
1. Obtener el identificador del proceso PID asignado al servicio que se quiere detener, usando el siguiente comando:
sc queryex <servicename>
Donde <servicename> es el nombre del servicio, OJO no es el display name que se ve en services.msc. Para obtenerlo en services.msc da clic derecho sobre el servicio y propiedades verás el verdadero nombre del servicio.
Por ejemplo en mi caso el display name del servicio que quiero detener es Telephony (ese es el nombre a desplegar para que sea amigable para el usuario no el nombre real del servicio), pero si me voy a botón derecho y propiedades veo que el verdadero nombre del servicio para el sistema es: TapiSrv
Entonces ejecuté:
sc queryex TapiSrv
Lo cual me regresó:
SERVICE_NAME: TapiSrv
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 7 PAUSED
(STOPPABLE,PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 1272
FLAGS :
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 7 PAUSED
(STOPPABLE,PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 1272
FLAGS :
Aquí el dato importante es el PID : 1272
2. Ya con el PID usamos el siguiente comando para detenerlo de manera forzada:
taskkill /F /PID <PID>
-Donde <PID> es el que obtuvimos en el paso anterior, por lo cual ejecuté lo siguiente:
taskkill /F /PID 1272
-El comando regresó lo siguiente:
SUCCESS: The process with PID 1272 has been terminated.
Misión cumplida
miércoles, enero 04, 2012
Instalando Aventail VPN client
En mi actual proyecto en el trabajo estoy usando Aventail VPN Connection para conectarme a la VPN del cliente, sin embargo a la hora de querer instalarlo en Windows XP tuvimos muchos problemas (prefiero el cliente VPN de CISCO ese nunca nos dio lata), por si a alguien le sirve les platico mi experiencia y como se resolvió.
Una de las cosas que dificultó encontrar el problema es que el instalador de Aventail VPN Connection es un instalador silencioso, es decir, no te muestra ninguna barra de progreso ni señal alguna de lo que está haciendo. Se supone que al correr el instalador el hace su trabajo y al final te deja un ícono en tu escritorio, lo cual no ocurría en mi máquina osea nunca aparecía el ícono y no mandaba ningún mensaje de error.
Lo bueno es que unos compañeros en Querétaro habían tenido un problema similar y me pasaron el tip sobre como resolverlo, resulta que este software utiliza dos servicios de Windows que normalmente están apagados o deshabilitados, aquí los pasos a seguir:
1. En el menú Start o Inicio, seleccionar run o ejecturar y escribir "services.msc" al dar enter se abrírá el administrador de servicios de windows.
2. Localizar un servicio llamado "Telephony", hay que habilitarlo dando clic derecho --> propiedades y en la opción Startup type poner la opción Manual o Automatic , luego hay que correr el servicio presionando start o iniciar.
3. Localizar un servicio llamado "Remote Access Connection Manager", al igual que el anterior hay que asegurarse de que esté habilitado e iniciarlo.
martes, agosto 16, 2011
jueves, julio 14, 2011
Ver archivos LOG en tiempo real en UNIX
La otra vez necesitaba estar monitoreando el log de un server Weblogic, pero solo tengo acceso al archivo log desde mi cuenta de usuario en el shell, así que para ver el log usaba el cat cada determinado tiempo. Me pregunté si el poderoso UNIX tendría un comando simple con el que pudiera observer los cambios en un archivo de texto en tiempo real.
En efecto el poderoso UNIX cuenta con el comando tail que cubre perfectamente con el objetivo:
tail -f <archivoLog>

En efecto el poderoso UNIX cuenta con el comando tail que cubre perfectamente con el objetivo:
tail -f <archivoLog>
Suscribirse a:
Entradas (Atom)