jueves, 20 de noviembre de 2008

insertar Html

Si queréis insertar código html en una entrada del blog es útil esta página

Errores Comunes en Tomcat al publicar un proyecto

A la hora de crear un nuevo proyecto en Tomcat, son frecuentes los siguientes errores. Lo observamos tras crear un war, lo movemos a la carpeta webapps, y no responde al explorador.

1) Ver que efectivamente, se ha creado la carpeta correspondiente, al proyecto, dentro de webapps.

2) ve que si lo hemos creado con eclipse, no haya un xml en C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost que esté apuntando al de la carpeta de eclipse.

3) ver q al lanzarlo, no se haya producido ningún error (por ejemplo en el web.xml). Esto se consulta en los logs, C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\logs, creo que en el archivo catalina.2008-11-14.log

PD: Es normal que al hacer un clean en el proyecto de eclipse, se borre el contenido de WEB-INF/classes

domingo, 17 de agosto de 2008

javax.servlet.ServletException: javax.servlet.jsp.tagext.TagAttributeInfo

Me ha ocurrido esta excepción al:
-Instalar el proyecto Tomcat de Wurfl en Tomcat 5.5.
-Se supone que necesita jsp 2.0. Tomcat 5.5 ya viene preparado para poder desarrollar jsp 2.0, entonces no habría problema.
-Este error, es precisamente, qu eno encuentra las librerías necesarias para jsp 2.0.

Se soluciona copiando servlet-api.jar y jsp-api.jar del common/lib al common/endorsed

No se muy bien porqué es.

domingo, 11 de mayo de 2008

Foro de Internet

Libros:

-Funky business
-The cluetrain manifesto
-Rodolfo Carpentier, Internet hoy, cómo hacer negocios en la red

martes, 6 de mayo de 2008

build.xml

Sirve para crear varios Jar a la vez


<?xml version="1.0"?>

<project name="WebSGCCH" default="all" basedir=".">



  <property name="src.dir" value="src" />

<property name="resources.dir" value="resources" />

  <property name="build.dir" value="build" />

<property name="lib.dir" value="lib" />

<property name="xml.dir" value="xml" />

<property name="dist.dir" value="dist" />







<!-- ======================================================= -->

  <!-- Definicion de classpath.                                -->

  <!-- ======================================================= -->

  <path id="classpath">

    <fileset dir="${lib.dir}/AggregatorSGCCH">

      <include name="*.jar"/>

    </fileset>

<fileset dir="${lib.dir}/CommonJars">

      <include name="*.jar"/>

    </fileset>

<fileset dir="${lib.dir}/WebSGCCH">

      <include name="*.jar"/>

    </fileset>

<fileset dir="${lib.dir}/SQLiteSGCCH">

      <include name="*.jar"/>

    </fileset>

<fileset dir="${lib.dir}/SessionSGCCH">

      <include name="*.jar"/>

    </fileset>

<fileset dir="${lib.dir}/DeviceSGCCH">

      <include name="*.jar"/>

    </fileset>

<fileset dir="${lib.dir}/CPSGCCH">

      <include name="*.jar"/>

    </fileset>

<fileset dir="${lib.dir}/LogSGCCH">

      <include name="*.jar"/>

    </fileset>

  <fileset dir="${dist.dir}"/>

    <fileset dir="${build.dir}"/>

  </path>



  <!-- Do everything. -->

  <target name="all">

   <antcall target="deploy"/>

  </target>



  <!-- Initialize, create directories, etc. -->

  <target name="init">

    <mkdir dir="${build.dir}/AggregatorSGCCH"/>

<mkdir dir="${build.dir}/WebSGCCH"/>

<mkdir dir="${build.dir}/SQLiteSGCCH"/>

<mkdir dir="${build.dir}/SessionSGCCH"/>

<mkdir dir="${build.dir}/DeviceSGCCH"/>

<mkdir dir="${build.dir}/CPSGCCH"/>

<mkdir dir="${build.dir}/LogSGCCH"/>

   <mkdir dir="${dist.dir}"/>

  </target>



<!-- Clean up everything. -->

  <target name="clean">

    <delete dir="${build.dir}/AggregatorSGCCH"/>

<delete dir="${build.dir}/WebSGCCH"/>

<delete dir="${build.dir}/SQLiteSGCCH"/>

<delete dir="${build.dir}/SessionSGCCH"/>

<delete dir="${build.dir}/DeviceSGCCH"/>

<delete dir="${build.dir}/CPSGCCH"/>

<delete dir="${build.dir}/LogSGCCH"/>

<delete dir="${dist.dir}"/>

  </target>





<!-- Copy Resources -->

<target name="copy.resources" >

<copy todir="${build.dir}/WebSGCCH/resources">

   <fileset dir="${resources.dir}">

         <include name="**/*.*"/>

       </fileset>

     </copy>



<copy todir="${build.dir}/WebSGCCH/xml">

<fileset dir="${xml.dir}">

         <include name="**/*.*"/>

      </fileset>

    </copy>





<copy todir="${build.dir}/WebSGCCH">

   <fileset dir="${lib.dir}/WebSGCCH">

         <include name="**/jasper-runtime.jar"/>

     <include name="**/jsp-api.jar"/>

   <include name="**/commons-logging.jar"/>

   <include name="**/commons-el.jar"/>

<include name="**/commons-fileupload-1.2.jar"/>

<include name="**/commons-io-1.4.jar"/>

</fileset>

</copy>



<copy todir="${build.dir}/AggregatorSGCCH">

   <fileset dir="${lib.dir}/CommonJars">

         <include name="**/osgi-service.jar"/>

     </fileset>

</copy>

  </target>



  <!-- Compile everything. -->



<!-- LogSGCCH -->



<target name="compileLogSGCCH" depends="clean,init,copy.resources"> <!-- LogSGCCH -->



    <javac srcdir="${src.dir}/com/tid/sgcch/log" destdir="${build.dir}/LogSGCCH" verbose="no">

     <classpath refid="classpath" />

    </javac>



</target>



   <!-- SQLiteSGCCH -->



<target name="compileSQLiteSGCCH" depends="distLogSGCCH">



     <javac srcdir="${src.dir}/com/tid/sgcch/bean" destdir="${build.dir}/SQLiteSGCCH" verbose="no">

   <classpath refid="classpath" />

</javac>



<javac srcdir="${src.dir}/com/tid/sgcch/sqlite" destdir="${build.dir}/SQLiteSGCCH" verbose="no">

     <classpath refid="classpath" />

    </javac>

</target>



  <!-- SessionSGCCH -->



<target name="compileSessionSGCCH" depends="distSQLiteSGCCH"> <!-- SessionSGCCH -->



<javac srcdir="${src.dir}/com/tid/sgcch/session" destdir="${build.dir}/SessionSGCCH" verbose="no">

     <classpath refid="classpath" />

    </javac>



    <javac srcdir="${src.dir}/com/tid/sgcch/session/bean" destdir="${build.dir}/SessionSGCCH" verbose="no">

     <classpath refid="classpath" />

    </javac>



</target>



<!-- CPSGCCH -->



<target name="compileCPSGCCH" depends="distSessionSGCCH"> <!-- CPSGCCH -->



    <javac srcdir="${src.dir}/com/tid/sgcch/upnpAV" destdir="${build.dir}/CPSGCCH" verbose="no">

     <classpath refid="classpath" />

    </javac>

</target>



<!-- Aggregator -->



<target name="compileAggregator" depends="distCPSGCCH">



    <javac srcdir="${src.dir}/com/tid/sgcch/aggregator" destdir="${build.dir}/AggregatorSGCCH" verbose="no">

     <classpath refid="classpath" />

    </javac>



<javac srcdir="${src.dir}/com/tid/sgcch/aggregator" destdir="${build.dir}/AggregatorSGCCH" verbose="no">

     <classpath refid="classpath" />

    </javac>



</target>



  <!-- DeviceSGCCH -->



<target name="compileDeviceSGCCH" depends="distAggregator"> <!-- DeviceSGCCH -->



    <javac srcdir="${src.dir}/com/tid/sgcch/device" destdir="${build.dir}/DeviceSGCCH" verbose="no">

     <classpath refid="classpath" />

    </javac>

</target>



<!-- WebSGCCH -->



<target name="compileWebSGCCH" depends="distDeviceSGCCH">



    <javac srcdir="${src.dir}/com/tid/sgcch/webserver" destdir="${build.dir}/WebSGCCH" verbose="no">

     <classpath refid="classpath" />

    </javac>

</target>









  <!-- Create JAR distribution -->



<target name="distLogSGCCH" depends="compileLogSGCCH">

<jar manifest="${src.dir}/LogSGCCH-MANIFEST.MF"

      jarfile="${dist.dir}/LogSGCCH.jar"

          basedir="${build.dir}/LogSGCCH">

<include name="com/tid/sgcch/log/*.class"/>

<include name="**/*.*"/>

    </jar>



</target>



<target name="distSQLiteSGCCH" depends="compileSQLiteSGCCH">

<jar manifest="${src.dir}/SQLiteSGCCH-MANIFEST.MF"

          jarfile="${dist.dir}/SQLiteSGCCH.jar"

          basedir="${build.dir}/SQLiteSGCCH">

<include name="com/tid/sgcch/bean/*.class"/>

<include name="com/tid/sgcch/sqlite/common/*.class"/>

<include name="com/tid/sgcch/sqlite/services/*.class"/>

<include name="com/tid/sgcch/sqlite/impl/*.class"/>

<include name="**/*.*"/>

    </jar>

</target>



    <target name="distSessionSGCCH" depends="compileSessionSGCCH">

    <jar manifest="${src.dir}/SessionSGCCH-MANIFEST.MF"

          jarfile="${dist.dir}/SessionSGCCH.jar"

          basedir="${build.dir}/SessionSGCCH">

     <include name="com/tid/sgcch/session/bean/*.class"/>

       <include name="com/tid/sgcch/igd/*.class"/>

     <include name="com/tid/sgcch/session/*.class"/>

   <include name="**/*.*"/>

     </jar>

</target>



<target name="distCPSGCCH" depends="compileCPSGCCH">

<jar manifest="${src.dir}/CPSGCCH-MANIFEST.MF"

          jarfile="${dist.dir}/CPSGCCH.jar"

          basedir="${build.dir}/CPSGCCH">

<include name="com/tid/sgcch/upnpAV/*.class"/>

       <include name="com/tid/sgcch/upnpAv/services/*.class"/>

   <include name="**/*.*"/>

     </jar>

</target>



<target name="distAggregator" depends="compileAggregator">

     <jar manifest="${src.dir}/Aggregator-MANIFEST.MF"

          jarfile="${dist.dir}/Aggregator.jar"

          basedir="${build.dir}/AggregatorSGCCH">

       <include name="com/tid/sgcch/aggregator/*.class"/>

       <include name="com/tid/sgcch/aggregator/service/*.class"/>

   <include name="**/*.*"/>

     </jar>

</target>



<target name="distDeviceSGCCH" depends="compileDeviceSGCCH">

<jar manifest="${src.dir}/DeviceSGCCH-MANIFEST.MF"

          jarfile="${dist.dir}/DeviceSGCCH.jar"

          basedir="${build.dir}/DeviceSGCCH">

       <include name="com/tid/sgcch/device/*.class"/>

   <include name="**/*.*"/>

     </jar>

   </target>



    <target name="distWebSGCCH" depends="compileWebSGCCH">

<jar manifest="${src.dir}/WebSGCCH-MANIFEST.MF"

          jarfile="${dist.dir}/WebSGCCH.jar"

          basedir="${build.dir}/WebSGCCH">

       <include name="com/tid/sgcch/webserver/*.class"/>

       <include name="com/tid/sgcch/webserver/jsp/*.class"/>

    <include name="com/tid/sgcch/webserver/jsp/admin/*.class"/>

<include name="com/tid/sgcch/webserver/lite/jsp/*.class"/>

    <include name="com/tid/sgcch/webserver/outside/*.class"/>

<include name="com/tid/sgcch/webserver/outside/util/*.class"/>

<include name="com/tid/sgcch/webserver/lite/admin/jsp/*.class"/>

<include name="**/*.*"/>

     </jar>

</target>





<target name="deploy" depends="distWebSGCCH" description="Copy JAR to the Oscar bundle directory">

<!-- Deploy in Oscar bundle directory

<copy todir="${bundle.dir}" file="${dist.dir}/Aggregator.jar" overwrite="true" />

<copy todir="${bundle.dir}" file="${dist.dir}/WebSGCCH.jar" overwrite="true" />

<copy todir="${bundle.dir}" file="${dist.dir}/SQLiteSGCCH.jar" overwrite="true" />

<copy todir="${bundle.dir}" file="${dist.dir}/SessionSGCCH.jar" overwrite="true" />

<copy todir="${bundle.dir}" file="${dist.dir}/DeviceSGCCH.jar" overwrite="true" />

<copy todir="${bundle.dir}" file="${dist.dir}/CPSGCCH.jar" overwrite="true" />

<copy todir="${bundle.dir}" file="${dist.dir}/LogSGCCH.jar" overwrite="true" />

-->

</target>



</project>

lunes, 14 de abril de 2008

Ejemplo de Ajax

Proporcionado por Xakutin. Gracias

//URLs de las JSPs encargadas de realizar la operacion en el servidor
var WS_URL_ADD_CAMERA= URL_OPERATIONS + 'addCamara.jsp';
var WS_URL_ADD_RECORDING=URL_OPERATIONS + 'addGrabacion.jsp';
var WS_URL_DEL_CAMERA=URL_OPERATIONS + 'delCamara.jsp';
var WS_URL_DEL_RECORDING=URL_OPERATIONS + 'delGrabacion.jsp';
var WS_URL_ADD_SCHEDULE=URL_OPERATIONS + 'addProgramacion.jsp';
var WS_URL_GET_ID_RECORDING=URL_OPERATIONS + 'getIdGrabacion.jsp';
var WS_URL_MOD_CAMERA=URL_OPERATIONS + "modCamara.jsp";
var WS_URL_MOD_PROGRAMACION=URL_OPERATIONS + "modProgramacion.jsp";
var WS_ANADIR_TAREA="agregarTarea.jsp";
var WS_URL_START_RECORD = URL_OPERATIONS + "recordCam.jsp";
var WS_URL_STOP_RECORD = URL_OPERATIONS + "stopRecordCam.jsp";
var WS_URL_SAVE_PHRASE = URL_OPERATIONS + "savePhrase.jsp";


/* Funciones encargadas de hacer peticiones al servidor sin tener que
volver a cargar la página
Parametros:
*/
function addCamaraToServerXML(sNombre, sIp, sModelo){
var bResult=bMakeSyncRequest(WS_URL_ADD_CAMERA + '?txtNombre='+sNombre+'&txtIp='+sIp+'&selModelo='+sModelo);

return(bResult);
}

/* Descripcion
Parametros: -
*/
function anadirTarea(sIp,sFecha,sSegundo,sMinuto,sHora,sDuracion,sSegundoFin,sMinutoFin,sHoraFin){
var resultad_peticion = bMakeSyncRequest("http://tehuelche.hi.inet:8082/vigilaepc/agregarTarea.jsp?sFecha"+"=" + sFecha + "&sIp"+"="+sIp+"&sSegundoInicio="+sSegundo+"&sMinutoInicio="+sMinuto+"&sHoraInicio="+sHora+"&sDuracion="+sDuracion+"&sSegundoFin="+sSegundoFin+"&sMinutoFin="+sMinutoFin+"&sHoraFin="+sHoraFin );

}

/* Descripcion
Parametros: -
*/
function savePhrase(sFrase){
var bResult=bMakeSyncRequest(WS_URL_SAVE_PHRASE + '?frase='+sFrase);
return(bResult);

}

/* Descripcion
Parametros: -
*/
function startRecordFromServer(sNombreGrabacion, sUrlImage, sTempDir, sWidth, sHeight){
//var bResult=bMakeSyncRequest(WS_URL_START_RECORD + '?nombreGrabacion='+sNombreGrabacion+'&urlCamImage='+sUrlImage+'&tempDir='+sTempDir);
var bResult=bMakeSyncRequest(WS_URL_START_RECORD + '?nombreGrabacion='+sNombreGrabacion+'&urlCamImage='+sUrlImage+'&tempDir='+sTempDir+'&width='+sWidth+'&height='+sHeight);

return(bResult);
}

/* Descripcion
Parametros: -
*/
function stopRecordFromServer(){
var bResult=bMakeSyncRequest(WS_URL_STOP_RECORD);
return(bResult);
}

/* Descripcion
Parametros: -
*/
function addGrabacionToServerXML(sNombreGrabacion, sArchivo, sIpCamara){
var bResult=bMakeSyncRequest(WS_URL_ADD_RECORDING + '?nombreGrabacion='+sNombreGrabacion+'&nombreArchivo='+sArchivo+'&ipCamara='+sIpCamara);
return(bResult);
}

/* Descripcion
Parametros: -
*/
function delCamaraToServerXML(sIp){
var bResult=bMakeSyncRequest(WS_URL_DEL_CAMERA + '?ipCamara='+sIp);
return(bResult);
}

/* Descripcion
Parametros: -
*/
function delGrabacionToServerXML(sIpCamara,sIpCliente,sNombreGrabacion){
var bResult=bMakeSyncRequest(WS_URL_DEL_RECORDING + '?ipCamara='+sIpCamara+'&nombreGrabacion='+sNombreGrabacion + '&ipCliente=' + sIpCliente);
return(bResult);
}

/* Descripcion
Parametros: -
*/
function addProgramacionToServerXML(sDiaProgramacion,sHoraInicio,sMinutosInicio,sHoraFin,sMinutosFin){
var bResult=bMakeSyncRequest(WS_URL_ADD_SCHEDULE + '?diaProgramacion='+sDiaProgramacion+'&horaInicio='+sHoraInicio+'&minutosInicio='+sMinutosInicio+'&horaFin='+sHoraFin+'&minutosFin='+sMinutosFin);
return(bResult);
}

/* Descripcion
Parametros: -
*/
function getIdGrabacionFromServerXML(sIpCamara){
var sResult=sMakeSyncRequest(WS_URL_GET_ID_RECORDING + '?ipCamara='+sIpCamara);
return(sResult);
}

/* Descripcion
Parametros: -
*/
function modCamaraToServerXML(sXML){
var bResult=bMakeSyncRequestXML(WS_URL_MOD_CAMERA,sXML);
return(bResult);
}


function modProgramacionToServerXML(sXML){


var bResult=bMakeSyncRequestXML(WS_URL_MOD_PROGRAMACION,sXML);

return(bResult);
}


//Crea el objeto XMLHttpRequest
function getXMLHttpRequest(){
var oXMLHttpRequest = false;
if (window.ActiveXObject) { // IE
try {
oXMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {

try {
oXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
return(oXMLHttpRequest);
}

//Realiza una petición a una URL y devuelve true si la operación ha sido correcta
//y false en caso contrario
function bMakeSyncRequest(url) {

oXMLHttpRequest=getXMLHttpRequest();

if (!oXMLHttpRequest) {
}else{

oXMLHttpRequest.open('GET', url, false);

oXMLHttpRequest.send(null);

var oXMLDocument=oXMLHttpRequest.responseXML;

//Consultamos el nodo status
var oNodeStatus = oXMLDocument.selectSingleNode("//status");

//alert(" tt"+oNodeStatus.text);
if (oNodeStatus.text=="OK"){

return(true);
}
}

//alert(url);
return(false);
}

//Realiza una petición a una URL y devuelve el texto del nodo DATA de la respuesta
//Se devuelve NULL en caso contario
function sMakeSyncRequest(url) {
var sResult=null;

oXMLHttpRequest=getXMLHttpRequest();

if (!oXMLHttpRequest) {
}else{
oXMLHttpRequest.open('GET', url, false);
oXMLHttpRequest.send(null);
var oXMLDocument=oXMLHttpRequest.responseXML;
//Consultamos el nodo status
var oNodeStatus = oXMLDocument.selectSingleNode("//status");
if (oNodeStatus.text=="OK"){
var oNodeDATA = oXMLDocument.selectSingleNode("//data");
sResult=oNodeDATA.text;
}
}

return(sResult);
}

//Envia un XML a una URL, devuelve true si ha ido todo bien, y false en
//caso contrario
function bMakeSyncRequestXML(sUrl, sXML){
oXMLHttpRequest=getXMLHttpRequest();

if (!oXMLHttpRequest) {
}else{
var oXMLDom = new ActiveXObject("Microsoft.XMLDOM");
oXMLDom.loadXML(sXML);
//Mandamos el XML

oXMLHttpRequest.open('POST', sUrl, false);

oXMLHttpRequest.send(oXMLDom);

var oXMLDocument=oXMLHttpRequest.responseXML;
//Consultamos el nodo status

var oNodeStatus = oXMLDocument.selectSingleNode("//status");


if (oNodeStatus.text=="OK") {

return(true);
}
}

return(false);
}

// Reliza una petición a una URL de forma asíncrona
function makeAsyncRequest(url) {
oXMLHttpRequest=getXMLHttpRequest();

if (!oXMLHttpRequest) {
}else{
oXMLHttpRequest.open('GET', url, true);
oXMLHttpRequest.send(null);
}
}


// Reliza una petición a una URL de forma asíncrona
function makeAsyncRequestNoCache(url) {
oXMLHttpRequest=getXMLHttpRequest();

if (!oXMLHttpRequest) {
}else{
url+="&rnd="+Math.floor(Math.random()*1000000); //Le añadimos este parametro para evitar la cache del navegador
oXMLHttpRequest.open('GET', url, true);
oXMLHttpRequest.send(null);
}
}

// Reliza una petición a una URL de forma síncrona
function makeSyncRequest(url) {
oXMLHttpRequest=getXMLHttpRequest();

if (!oXMLHttpRequest) {
}else{
oXMLHttpRequest.open('GET', url, false);
oXMLHttpRequest.send(null);
}
}