lunes, 9 de marzo de 2015

Como hacer que funcionen los servicios RESTFul con Eclipse Luna y Glassfish

Si estás usando Eclipse Luna RC1 junto a Glassfish vas a tener algunos problemas por el propio eclipse tal y como comentamos en otro post anterior.

El problema viene porque eclipse RC1 es una Release Candidate, es decir una versión Beta y hay cosas que han cambiado en la versión final SR1.

Supongamos que tienes instaladas las herramientas de Glassfish y quieres hacer un servicio REST con esa versión de eclipse.

Bien pues lo primero que debes hacer es NO utilizar las herramientas de creación de servicios REST de Glassfish. Bueno esto incluso aunque uses la versión SR de eclipse.
Hazlo desde las herramientas de eclipse y cuando termines te encontrarás que no funciona bien y es porque han cambiado en la versión Glassfish 4 la implementación de Jersey y por tanto el servlet de acceso es distinto. Así pues tienes que cambiar en el web.xml el servlet que aparece por este otro:


org.glassfish.jersey.servlet.ServletContainer



miércoles, 4 de marzo de 2015

No funcionan los servicios REST en eclipse luna





Hay diferencias notables entre las distintas versiones de eclipse Luna y algunas se notan una barbaridad.

Una de estas diferencias es en la gestión de los servicios REST, que dependiendo de la versión de Luna que uses aparecen más o menos opciones, o incluso ninguna.

Así pues si intentas crear un servicio REST que has visto en algún tutorial de Internet y no te aparecen las mimas opciones, o menos, o incluso distinto asistente, posiblemente esté usando Eclipse Luna RC1.

Si quieres poder trabajar con servicios REST sin problemas y usando las herramientas de eclipse lo mejor es que migres de versión hacia Eclipse Luna SR1 o bien la SR2.

Puedes encontrar una lista completa de paquetes de eclipse aquí:
http://www.eclipse.org/downloads/packages/all

Recuerda:

  • RC significa Release Candidate y todavía no puede considerarse una versión final
  • SR significa Stable Release y puede usarse con confianza.
  • M significa Milestone y por tanto en fase de desarrollo y poco estable.

El número a continuación hace referencia a la revisión en la que se encuentra. Así SR2 es más estable que SR1, pero en cualquier caso huye de las versiones M y casi con toda seguridad de las RC, o por lo menos cámbiala en cuanto aparezca una SR.

martes, 3 de marzo de 2015

Solución a Eclipse no importa proyectos EJB desde git o github

A veces al importar un proyecto desde un repositorio git o github.com nos encontramos con un problema y es que se importa mal en eclipse, sobretodo cuando el proyecto es de tipo EJB o de tipo EAR.

El problema viene porque tanto el proyecto EAR como el EJB necesitan de una serie de directorios de configuración en eclipse aunque estén vacíos y sin ese directorio eclipse no logra abrir el proyecto o si lo abre no lo trata como un proyecto Java JEE y comienza a dar excepciones y la pestaña de mensajes se llena de errores.

El asunto es fácil cuando se sabe, y es que git no guarda versiones de directorios vacíos de ahí el problema.

Así que el flujo de trabajo es el siguiente:


  1. Creamos un proyecto EJB o EAR y le añadimos el EJB y el WAR en eclipse.
  2. Creamos los componentes
  3. Creamos el repositorio local
  4. Hacemos el primer commit
  5. Lo subimos a un repositorio global como github, bitbucket o uno de nuestra empresa
  6. Un compañero hace clone del proyecto
  7. FALLA


Y es debido al asunto anterior, git no versiona directorios vacíos y necesarios para eclipse.

La solución es chapucera, pero simple y efectiva.
En esos directorios vacíos y necesarios para eclipse simplemente hay que agregar dentro un fichero vacío, sin contenido y ya está solucionado. Se incorpora ese fichero en el siguiente commit y por tanto git mantendrá también el directorio que lo contiene.

Es común informar de alguna manera que el fichero no debe borrarse, así pueden encontrar esos ficheros vacíos de contenido con el nombre: keep.

Mi recomendación es que para evitar estos problemas, como otros asociados con el trabajo de los proyectos nativos de eclipse, como versiones de java, problemas de classpath, codificación de caracteres y un largo etcétera es que uses maven.

lunes, 2 de marzo de 2015

Resolver el error 404 con enlaces permanentes de wordpress

Un error común es encontrar un error 404 "File not found" tras configurar los enlaces permanentes de wordpress (permalinks), donde las opciones predeterminadas funcionan pero las configuraciones a medida no y ya que los permalinks suelen ser una parte fundamental del SEO marketing vamos a tratar de ayudar.

Las siguientes recomendaciones pueden ayudarte a resolver el problema:

1º Opción


Asegúrate de tener activado el módulo mod_rewrite de apache.
Para saber si lo tienes activo puedes crear una página php. Llámala phpinfo.php y escribe el siguiente código en ella:
<?php phpinfo(); ?>

Accede a la dirección http://tuservidor.com/phpinfo.php  En el resultado observa la parte de módulos a ver si aparece como activo.

Si no es así debes activarlo si tienes acceso a tu host, o bien solicitar a tu proveedor que lo active.

2º Opción


Si lo tienes activo y no funciona puede que tu wordpress no pueda escribir en tu fichero .htaccess, así que comprueba los permisos necesarios para que wordpress pueda, por ejemplo prueba poniendo permisos 0775 al fichero .htaccess y repite la configuración de permalinks.

O bien copia y pega el siguiente código en el fichero:


RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


Es posible que también tengas que cambiar los permisos del fichero index.php

3ª Opción


Si con esto tampoco funciona, la solución puede que caiga en el lado del servidor apache. Deberías poder abrir el fichero de configuración apache2.conf  (depende del sistema operativo, pero una ruta común en sistemas linux es: /etc/apache2/apache2conf y esto supone que tienes permisos y acceso completo a tu servidor, si usas una cuenta de hosting deberías ponerte en contacto con tu administrador) y buscar el siguiente código:

Options Indexes FollowSymLinks
AllowOverride None
Require all granted

y cambiar la opción por esta: 

AllowOverride All

El resto déjalo como está y todo esto asumiendo que el directorio de lectura donde tu apache busca los documentos sea /var/www/ 

4ª Opción


A veces se ha encontrado algunos fallos en las distribuciones de wordpress o de algunos plugins y este problema se ha resuelto actualizando a las últimas versiones. Así que mantén un ojo abierto sobre tus actualizaciones.

Articulos relacionados