El problema se presenta cuando queremos iniciar una aplicación que utiliza Commons Daemon junto a JSVC (una solución bastante práctica para ejecutar aplicaciones desarrolladas en Java como servicios de Linux) Si intentamos iniciar el servicio sin éxito y revisando el log de errores encontramos el siguiente mensaje:

Cannot find daemon loader org/apache/commons/daemon/support/DaemonLoader
Service exit with a return value of 1

El principal problema es que JSVC no puede “ver” el jar de Commons Daemon (por ejemplo commons-daemon.jar). El motivo de esto puede ser alguna de las siguientes:

  • El usuario con el que estamos ejecutando el servicio no tiene permisos de lectura sobre la librería
  • El classpath enviado a JSVC es incorrecto

Si el problema es de permisos con un simple chmod lo solucionaremos. Sino es este el caso hay que revisar el comando que se está ejecutando (prestar atención al parámetro cp pasado a jsvc). Por ejemplo:

jsvc -home $JAVA_HOME -errfile $ARCH_ERROR -pidfile $ARCH_PID -procname $NOMBRE_SERVICIO -cp $CLASSPATH $DAEMON_CLASS

Más Info


Se puede pasar los valores de un array obtenido mediante PHP (por ejemplo desde una base de datos) a un array en javascript de la siguiente manera:

<?php
//...
       $array_php = array(23, 24, 33, 55, 77);
//...
?>

<script type="text/javascript">
       var array_js = new Array();
       <?php
              for($i = 0; $i<count($array_php); $i++){
                     echo 'array_js['. $i .'] = '. $array_php($i) .';\n';
              }
       ?>
</script>

generando un código similar a este:

<script type="text/javascript">
       var array_js = new Array();
       array_js[0] = 23;
       array_js[1] = 24;
       array_js[2] = 33;
       array_js[3] = 55;
       array_js[4] = 7;
</script>

Si nuestro array de PHP tiene una secuencia de indices diferente a la por defecto (de 0 a n-1) deberemos hacer algunas modificaciones:

<?php
//...
       $array_php = array(5=>23, 24, 13=>33, 74=>55, 77);
//...
?>

<script type="text/javascript">
       var array_js = new Array();
       <?php
              foreach($array_php as $indice=>$valor){
                     echo "array_js[$indice] = $valor;\n";
              }
       ?>
</script>

resultando:

<script type="text/javascript">
       var array_js = new Array();
       array_js[5] = 23;
       array_js[6] = 24;
       array_js[13] = 33;
       array_js[74] = 55;
       array_js[75] = 7;
</script>

Espero sirva.
Saludos.

Mas Info


El método para cargar Helpers desde un Action sfLoader::loadHelpers() a sido deprecateado (existe esa palabra?). En reemplazo se debe utilizar el método loadHelpers de la clase sfApplicationConfiguration, como vimos en el anterior post.

Logs en la barra de depuración

Para resolver el problema tenemos que cambiar las llamadas, por ejemplo si tenemos:

class detalleAction extends sfAction
{
	public function execute($request)
	{
		sfLoader::loadHelpers('NombreHelper');
		
		//...
	}
}

a la siguiente forma:

class detalleAction extends sfAction
{
	public function execute($request)
	{
		sfContext::getInstance()->getConfiguration()
				->loadHelpers('NombreHelper');
		
		//...
	}
}

Espero les sirva.
Saludos


Para poder invocar métodos de un Helper desde el Action necesitamos en primera instancia cargarlo, lo cual podemos realizar utilizando el método loadHelpers de la clase sfApplicationConfiguration. Por ejemplo:

class detalleAction extends sfAction
{
	public function execute($request)
	{
		sfContext::getInstance()->getConfiguration()
				->loadHelpers('NombreHelper');
		
		//...
	}
}

Más Info


Intentamos conectarnos mediante SQL*Plus a una instancia local de Oracle y obtenemos el siguiente error al logearnos:

ORA-12560: TNS:error del adaptador de protocolo

o

ORA-12560: TNS:protocol adapter error

Generalmente esto ocurre cuando el cliente no sabe como se llama la instancia que corre en nuestro equipo. Para solucionar este problema tenemos que asignar a la variable de entorno ORACLE_SID el nombre de nuestro servicio. Continue reading ‘ORA-12560: TNS:error del adaptador de protocolo’




del.icio.us

Blog Stats

  • 983,626 hits
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.