Hola, ya esta disponible la descarga de un early release de Java 7,
acabamos de hacer unas pruebas con Tomcat 6.0.20 + Dinamica y todo
parece estar funcionando bien. Anexo el diagnostico de /action/test.
Probamos en WinXP64 con una JVM de 64 bits. Graficos, PDFs, Excel,
captcha, etc. Todo OK.
El Java 7 lo pueden bajar de aca:
* http://java.sun.com/javase/downloads/ea.jsp
Aprovecho de avisarles que ya esta disponible el PostgreSQL 8.4
(produccion), estamos haciendo las pruebas de migracion para
garantizar que todo lo relativo a Dinamica corra bien en esta nueva
version de PGSQL, postearemos en la lista los resultados.
Saludos,
Martin
--
Registra tus gastos gratis!
Flexible y fácil de usar
http://www.martincordova.com/gastos
A solicitud de un cliente, hicimos unas pruebas de deployment de una
webapp creada con Dinamica en GlassFish v2, en general el proceso no
dio problemas, salvo porque teniamos algunos elementos mal colocados
en el web.xml y GlassFish se quejo. Hoy corregimos esto a nivel de la
plantilla webapp y ya esta disponible un nuevo dinamica-repository.zip
con esta correccion. Anexo el web.xml para que no tengan que bajarlo
todo, solo deberian reemplazar este archivo dentro de
/dinamica/webapp/WEB-INF.
Basicamente tienen que aprender a instalar y arrancar este servidor en
1er lugar, luego tienen que definir un pool de conexiones JDBC usando
la consola administrativa (el context.xml en META-INF ya no les
servira), y despues deben hacer deploy de la aplicacion, tal como la
usan en Tomcat, pero esta vez en GlassFish, usando la consola Admin.
Siguiendo estos pasos hicimos deploy del Registro de Gastos y tambien
de otra aplicacion de prueba, todo parece estar funcionando OK. el
/action/test tambien funciona bien, no manipulamos nada de la
instalacion por defecto, salvo que añadimos el driver de PostgreSQL al
directorio /lib de GF.
No estoy recomendando este producto sobre Tomcat 6, les paso estos
tips solo como nota informativa por si les toca migrar a GF2.
Saludos,
Martin
--
Registra tus gastos gratis!
Flexible y fácil de usar
http://www.martincordova.com/gastos
thanks,I'll have a try.
2009/6/29, Martin Cordova <martin.cordova@...>:
> Nothing special, in my opinion, if you rearrange the elements of the
> crud simple page you can have a similar effect, with or without paged
> grid, it is up to you.
>
> Regards,
> Martin
>
> 2009/6/28 liuhualiang <liuhualiang@...>:
>>
>>
>> Hi,Martin
>>
>> Google alerts (http://www.google.com/alerts?hl=en&gl=us
>> <http://www.google.com/alerts?hl=en&gl=us>)
>>
>> It can do crud in the table. (doesn't support paging)
>> if use dinamica to develop such a template,
>> is it difficult?
>> any idea?
>>
>> Best regards
>>
>> eppen
>>
>>
>
>
>
> --
> Registra tus gastos gratis!
> Flexible y fácil de usar
> http://www.martincordova.com/gastos
>
Nothing special, in my opinion, if you rearrange the elements of the
crud simple page you can have a similar effect, with or without paged
grid, it is up to you.
Regards,
Martin
2009/6/28 liuhualiang <liuhualiang@...>:
>
>
> Hi,Martin
>
> Google alerts (http://www.google.com/alerts?hl=en&gl=us
> <http://www.google.com/alerts?hl=en&gl=us>)
>
> It can do crud in the table. (doesn't support paging)
> if use dinamica to develop such a template,
> is it difficult?
> any idea?
>
> Best regards
>
> eppen
>
>
--
Registra tus gastos gratis!
Flexible y f¨¢cil de usar
http://www.martincordova.com/gastos
Thanks Martin,
I'll try this method too.
Martin Cordova дµÀ:
Yes you can, and it would be better if you encapsulate this logic
into
a Recordset Provider, a class that extends GenericTransaction and
implements the interface IRecordsetProvider, this way you can create a
Recordset using this provider (source="class") and then inject its
values into the insert template.
Regards,
Martin
On Sat, Jun 27, 2009 at 12:40 AM, »ªÁ¼Áø<liuhualiang@gmail.com>
wrote:
>
>
> I had thought to new a key manage class for the key manage table,
> and in my insert action's service method,
> ask for a key from the key manage class and set the key to
inputParams
>
> can I do like this ?
>
> Best regards
>
> eppen
>
> 2009/6/27 Martin Cordova <martin.cordova@gmail.com>:
>>
>>
>> If you primary key value comes from another table, then you
should
>> first update that table and then insert using an expression
that
>> retrieves the value just updated, in case that is possible
using your
>> SQL engine. Example:
>>
>> sql1: update myTable1 set colX = colX + 1
>> sql2: insert into myTable2 (a,b,c) values (myFunctionGetKey(),
>> ${fld:col2}, ${fld:col3})
>>
>> or maybe a trigger con the column that represents the primary
key.
>>
>> Another approach:
>>
>> sql1 - to be retrieved as a <recordset> in config.xml:
update myTable1
>> set colX = colX + 1; select max(colX) as ID from myTable1
>> sql2; insert into myTable2 (a,b,c) values (${fld:ID},
${fld:col2},
>> ${fld:col3})
>>
>> When you execute sql2 using a <query> element, be sure
to use the
>> params attribute like this: <query id="sql2.sql"
params="sql1.sql"/>
>>
>> This way the value of the col ID will be injected into your
insert
>> template.
>>
>> Remember to use JDBC transactions in config.xml
>>
>> A word of advice: avoid all of these if possible, use a native
>> sequence object from the DB, or an identity column for you
primary
>> keys.
>>
>> Regards,
>> Martin
>>
>> 2009/6/26 eppencn <liuhualiang@gmail.com>:
>>
>>>
>>>
>>> Hi,Martin
>>> I'm using the crud template,
>>> usually, the key is inputted by user or auto increment
>>>
>>> if I want to generate the key from another table (key
manage table).
>>> after insert action successed ,should update the key
manage table.
>>>
>>> any idea?
>>>
>>> Best regards
>>>
>>> eppen
>>>
>>>
>>
>> --
>> Registra tus gastos gratis!
>> Flexible y f¨¢cil de usar
>> http://www.martincordova.com/gastos
>>
>
>
Yes you can, and it would be better if you encapsulate this logic into
a Recordset Provider, a class that extends GenericTransaction and
implements the interface IRecordsetProvider, this way you can create a
Recordset using this provider (source="class") and then inject its
values into the insert template.
Regards,
Martin
On Sat, Jun 27, 2009 at 12:40 AM, »ªÁ¼Áø<liuhualiang@...> wrote:
>
>
> I had thought to new a key manage class for the key manage table,
> and in my insert action's service method,
> ask for a key from the key manage class and set the key to inputParams
>
> can I do like this ?
>
> Best regards
>
> eppen
>
> 2009/6/27 Martin Cordova <martin.cordova@...>:
>>
>>
>> If you primary key value comes from another table, then you should
>> first update that table and then insert using an expression that
>> retrieves the value just updated, in case that is possible using your
>> SQL engine. Example:
>>
>> sql1: update myTable1 set colX = colX + 1
>> sql2: insert into myTable2 (a,b,c) values (myFunctionGetKey(),
>> ${fld:col2}, ${fld:col3})
>>
>> or maybe a trigger con the column that represents the primary key.
>>
>> Another approach:
>>
>> sql1 - to be retrieved as a <recordset> in config.xml: update myTable1
>> set colX = colX + 1; select max(colX) as ID from myTable1
>> sql2; insert into myTable2 (a,b,c) values (${fld:ID}, ${fld:col2},
>> ${fld:col3})
>>
>> When you execute sql2 using a <query> element, be sure to use the
>> params attribute like this: <query id="sql2.sql" params="sql1.sql"/>
>>
>> This way the value of the col ID will be injected into your insert
>> template.
>>
>> Remember to use JDBC transactions in config.xml
>>
>> A word of advice: avoid all of these if possible, use a native
>> sequence object from the DB, or an identity column for you primary
>> keys.
>>
>> Regards,
>> Martin
>>
>> 2009/6/26 eppencn <liuhualiang@...>:
>>
>>>
>>>
>>> Hi,Martin
>>> I'm using the crud template,
>>> usually, the key is inputted by user or auto increment
>>>
>>> if I want to generate the key from another table (key manage table).
>>> after insert action successed ,should update the key manage table.
>>>
>>> any idea?
>>>
>>> Best regards
>>>
>>> eppen
>>>
>>>
>>
>> --
>> Registra tus gastos gratis!
>> Flexible y f¨¢cil de usar
>> http://www.martincordova.com/gastos
>>
>
>
--
Registra tus gastos gratis!
Flexible y f¨¢cil de usar
http://www.martincordova.com/gastos
Another thing to improve, taking note of this. Regards, Martin.
Enviado desde mi iPhone
El 27/06/2009, a las 09:40 a.m., liuhualiang <liuhualiang@...> escribió:
Hi,Martin
About the report date in pdf file.
now it's format is defined is PDFSimpleTable
-----------------------------------
String reportDate = StringUtil.formatDate(new java.util.Date(),
"dd-MM-yyyy HH:mm");
-----------------------------------
and the framework 's end user can't change it unless modify the source.
Thanks Martin.
I'll do it in my subclass.
Best regards
eppen
Martin Cordova дµÀ:
That's right, at present label markers ${lbl:xxx} will be ignored.
Workaround: In order to support markers, create a class extending
PDFSimpleTable and override the method getReportTitle(). Inside
that
method you can use the dinamica.Labels class to transform the label
marker into a value according to the Locale.
I am taking note of this issue as a request to improve Dinamica in a
forthcomming version.
Regards,
Martin
2009/6/27 liuhualiang <liuhualiang@gmail.com>:
>
>
> Hi,Martin
>
> The PDFSimple table's title is defined in the config.xml
> It seems that the title can't use labels defined in labels.xml .
> any solution?
>
> Best regards
> eppen
>
>
That's right, we will make it adjustable via override. Thanks for the
suggestion.
Regards,
Martin
2009/6/27 liuhualiang <liuhualiang@...>:
>
>
> Hi ,Martin
>
> About the PDFSimpleTable,
> the tblHeaderFont and tblBodyFont can be override.
> but the report title's font can't be override.
>
> Best regards
> eppen
>
>
--
Registra tus gastos gratis!
Flexible y f¨¢cil de usar
http://www.martincordova.com/gastos
That's right, at present label markers ${lbl:xxx} will be ignored.
Workaround: In order to support markers, create a class extending
PDFSimpleTable and override the method getReportTitle(). Inside that
method you can use the dinamica.Labels class to transform the label
marker into a value according to the Locale.
I am taking note of this issue as a request to improve Dinamica in a
forthcomming version.
Regards,
Martin
2009/6/27 liuhualiang <liuhualiang@...>:
>
>
> Hi,Martin
>
> The PDFSimple table's title is defined in the config.xml
> It seems that the title can't use labels defined in labels.xml .
> any solution?
>
> Best regards
> eppen
>
>
--
Registra tus gastos gratis!
Flexible y f¨¢cil de usar
http://www.martincordova.com/gastos
Hi ,Martin
About the PDFSimpleTable,
the tblHeaderFont and tblBodyFont can be override.
but the report title's font can't be override.
Best regards
eppen
Hi,Martin
About the report date in pdf file.
now it's format is defined is PDFSimpleTable
-----------------------------------
String reportDate = StringUtil.formatDate(new java.util.Date(),
"dd-MM-yyyy HH:mm");
-----------------------------------
and the framework 's end user can't change it unless modify the source.
Best regards
eppen
Hi,Martin
The PDFSimple table's title is defined in the config.xml
It seems that the title can't use labels defined in labels.xml .
any solution?
Best regards
eppen
I had thought to new a key manage class for the key manage table,
and in my insert action's service method,
ask for a key from the key manage class and set the key to inputParams
can I do like this ?
Best regards
eppen
2009/6/27 Martin Cordova <martin.cordova@...>:
>
>
> If you primary key value comes from another table, then you should
> first update that table and then insert using an expression that
> retrieves the value just updated, in case that is possible using your
> SQL engine. Example:
>
> sql1: update myTable1 set colX = colX + 1
> sql2: insert into myTable2 (a,b,c) values (myFunctionGetKey(),
> ${fld:col2}, ${fld:col3})
>
> or maybe a trigger con the column that represents the primary key.
>
> Another approach:
>
> sql1 - to be retrieved as a <recordset> in config.xml: update myTable1
> set colX = colX + 1; select max(colX) as ID from myTable1
> sql2; insert into myTable2 (a,b,c) values (${fld:ID}, ${fld:col2},
> ${fld:col3})
>
> When you execute sql2 using a <query> element, be sure to use the
> params attribute like this: <query id="sql2.sql" params="sql1.sql"/>
>
> This way the value of the col ID will be injected into your insert template.
>
> Remember to use JDBC transactions in config.xml
>
> A word of advice: avoid all of these if possible, use a native
> sequence object from the DB, or an identity column for you primary
> keys.
>
> Regards,
> Martin
>
> 2009/6/26 eppencn <liuhualiang@...>:
>
>>
>>
>> Hi,Martin
>> I'm using the crud template,
>> usually, the key is inputted by user or auto increment
>>
>> if I want to generate the key from another table (key manage table).
>> after insert action successed ,should update the key manage table.
>>
>> any idea?
>>
>> Best regards
>>
>> eppen
>>
>>
>
> --
> Registra tus gastos gratis!
> Flexible y fácil de usar
> http://www.martincordova.com/gastos
>
If you primary key value comes from another table, then you should
first update that table and then insert using an expression that
retrieves the value just updated, in case that is possible using your
SQL engine. Example:
sql1: update myTable1 set colX = colX + 1
sql2: insert into myTable2 (a,b,c) values (myFunctionGetKey(),
${fld:col2}, ${fld:col3})
or maybe a trigger con the column that represents the primary key.
Another approach:
sql1 - to be retrieved as a <recordset> in config.xml: update myTable1
set colX = colX + 1; select max(colX) as ID from myTable1
sql2; insert into myTable2 (a,b,c) values (${fld:ID}, ${fld:col2}, ${fld:col3})
When you execute sql2 using a <query> element, be sure to use the
params attribute like this: <query id="sql2.sql" params="sql1.sql"/>
This way the value of the col ID will be injected into your insert template.
Remember to use JDBC transactions in config.xml
A word of advice: avoid all of these if possible, use a native
sequence object from the DB, or an identity column for you primary
keys.
Regards,
Martin
2009/6/26 eppencn <liuhualiang@...>:
>
>
> Hi,Martin
> I'm using the crud template,
> usually, the key is inputted by user or auto increment
>
> if I want to generate the key from another table (key manage table).
> after insert action successed ,should update the key manage table.
>
> any idea?
>
> Best regards
>
> eppen
>
>
--
Registra tus gastos gratis!
Flexible y fácil de usar
http://www.martincordova.com/gastos
Hi,Martin
I'm using the crud template,
usually, the key is inputted by user or auto increment
if I want to generate the key from another table (key manage table).
after insert action successed ,should update the key manage table.
any idea?
Best regards
eppen
En Dinamica pueden configurar los Actions /security/loginfailed y
/security/loginlocked para que envien email en caso de que estos
eventos ocurran, y el email por defecto utiliza una plantilla (en
ambos casos) llamada body.txt que incluye informacion util para
reportar en estos casos.
Si ustedes le añaden este link a la plantilla body.txt, la alerta les
vendra lista para averiguar de donde procede la direccion IP desde
donde intentaron hacer el login, solo tendran que darle un clic al
URL:
http://www.iptools.com/dnstools.php?tool=ipwhois&user_data=${def:remoteaddr}
Parece tonto, pero es bien util y comodo. Asi averigue el otro dia que
un amigo de China estaba probando entrar con "admin" al registro de
gastos. ;)
Saludos,
Martin
--
Registra tus gastos gratis!
Flexible y fácil de usar
http://www.martincordova.com/gastos
Bien, es lo que pensaba sería la solución, sólo que la idea no es empaquetarlas en un jar todas las classes, sino dejarlas dentro del directorio classes del webapp. De todos modos muchas gracias!
Hola, creo que una opcion seria empaquetar estas clases en un JAR y
ponerlas en /tomcat6/lib, pero creo que serian cargadas por un
classloader distinto al de tu aplicacion, y no se si eso pueda tener
alguna implicacion. La otra es que simplemente pongas ese JAR dentro
de tu /WEB-INF/lib y listo.
>
>
> Hola Martín, te quería consultar en caso de tener más de una aplicación
> (webapp) en Tomcat, puede una de ellas hacer uso de las clases definidas en
> la otra? habría que agregar el directorio classes de la apli proveedora de
> clases en el classpath de Tomcat?
>
> Saludos
>
>
Hola, creo que una opcion seria empaquetar estas clases en un JAR y
ponerlas en /tomcat6/lib, pero creo que serian cargadas por un
classloader distinto al de tu aplicacion, y no se si eso pueda tener
alguna implicacion. La otra es que simplemente pongas ese JAR dentro
de tu /WEB-INF/lib y listo.
Saludos,
Martin
--
Registra tus gastos gratis!
Flexible y fácil de usar
http://www.martincordova.com/gastos
2009/6/26 Gustavo Javier Dottori <gustavo.dottori@...>:
>
>
> Hola Martín, te quería consultar en caso de tener más de una aplicación
> (webapp) en Tomcat, puede una de ellas hacer uso de las clases definidas en
> la otra? habría que agregar el directorio classes de la apli proveedora de
> clases en el classpath de Tomcat?
>
> Saludos
>
>
Hola Martín, te quería consultar en caso de tener más de una aplicación (webapp) en Tomcat, puede una de ellas hacer uso de las clases definidas en la otra? habría que agregar el directorio classes de la apli proveedora de clases en el classpath de Tomcat?
Hola Yuri, aparte de la opcion que te presenta Gustavo, supongamos que
en un solo formulario le haces las preguntas basicas para tomar la
decision, entonces solo necesitarias un Action con los validators
apropiados para cada cuestion a validar. En particular me refiero a
los custom-validators, que te permite añadirle reglas de validacion a
un Action, de manera declarativa, y el Action no sera ejecutado hasta
que todas las reglas se cumplan. La pagina 17 de la guia del
programador describe este mecanismo.
Tu formulario hara un post via ajax hacia este Action, y de esa manera
se activara la logica de validacion. Luego es cuestion de que el
Action declare los insert u updates que necesita, los cuales solo se
ejecutaran si pasa las validaciones. Ese es el contrato basico de
Dinamica para un request.
Espero te sirva.
Saludos,
Martin
--
Registra tus gastos gratis!
Flexible y fácil de usar
http://www.martincordova.com/gastos
2009/6/25 Lypgal <lypagl@...>:
>
>
> Hola Martin:
>
> Revisando este framework, que ha proposito me parece muy bueno, como debería
> añadirle la lógica cuando debo revisar varias tablas y según su contenido
> llenar otras y al final solo indicarle al usuario que si se acepto su
> petición. Por ejemplo, digamos que tengo un sistema de tramite documentario
> en una institucion educativa, un alumno hace un solicitud de curso dirigido
> (es decir pide que le dicten el curso de manera personalizada), el sistema
> debe verificar si el alumno cumple las condiciones como que debe ser alumno
> regular, haber aprobado una cantidad determinada de creditos, que el curso
> que pide no se dicte, etc, como veras debere revisar varias cosas en
> diferentes tablas. En funcion de esas consultas debere armar una respuesta
> que le diga OK o le falta cumplir los siguientes requerimientos...
>
> Gracias por tu ayuda
>
> Yuri Paliza
>
>
Hola Yuri, se me ocurre que una de las formas que en lo puedes encarar es hacer un action por cada control que debas hacer, es decir, tabla a verificar o error a retornar y en la etiqueta recordset indicar de acuerdo a on-empty-return el código para hacer un forward.
Por ejemplo : el action A tiene una etiqueta recordset como esta : <transaction>... <recordser id... ... on-empty-return="1"/> ..</transaction> <on-exit return-code="0" forward-to="action de control B" />
<on-exit return-code="1" forward-to="action con mensaje error action A" />
luego action B sería algo similar <transaction>...
<recordser id... ... on-empty-return="1"/>
..</transaction>
<on-exit return-code="0" forward-to="action de control C" />
<on-exit return-code="1" forward-to="action con mensaje error action B" />
Espero haberme explicado, sino vuelve a preguntar.
Revisando este framework, que ha proposito me parece muy bueno, como debería añadirle la lógica cuando debo revisar varias tablas y según su contenido llenar otras y al final solo indicarle al usuario que si se acepto su petición. Por ejemplo, digamos que tengo un sistema de tramite documentario en una institucion educativa, un alumno hace un solicitud de curso dirigido (es decir pide que le dicten el curso de manera personalizada), el sistema debe verificar si el alumno cumple las condiciones como que debe ser alumno regular, haber aprobado una cantidad determinada de creditos, que el curso que pide no se dicte, etc, como veras debere revisar varias cosas en diferentes tablas. En funcion de esas consultas debere armar una respuesta que le diga OK o le falta cumplir los siguientes requerimientos...
El 25 de junio de 2009 14:55, Gustavo Javier Dottori <gustavo.dottori@...> escribió:
Hola Yuri, se me ocurre que una de las formas que en lo puedes encarar es hacer un action por cada control que debas hacer, es decir, tabla a verificar o error a retornar y en la etiqueta recordset indicar de acuerdo a on-empty-return el código para hacer un forward.
Por ejemplo : el action A tiene una etiqueta recordset como esta : <transaction>... <recordser id... ... on-empty-return="1"/> ..</transaction> <on-exit return-code="0" forward-to="action de control B" />
<on-exit return-code="1" forward-to="action con mensaje error action A" />
luego action B sería algo similar <transaction>...
<recordser id... ... on-empty-return="1"/>
..</transaction>
<on-exit return-code="0" forward-to="action de control C" />
<on-exit return-code="1" forward-to="action con mensaje error action B" />
Espero haberme explicado, sino vuelve a preguntar.
Revisando este framework, que ha proposito me parece muy bueno, como debería añadirle la lógica cuando debo revisar varias tablas y según su contenido llenar otras y al final solo indicarle al usuario que si se acepto su petición. Por ejemplo, digamos que tengo un sistema de tramite documentario en una institucion educativa, un alumno hace un solicitud de curso dirigido (es decir pide que le dicten el curso de manera personalizada), el sistema debe verificar si el alumno cumple las condiciones como que debe ser alumno regular, haber aprobado una cantidad determinada de creditos, que el curso que pide no se dicte, etc, como veras debere revisar varias cosas en diferentes tablas. En funcion de esas consultas debere armar una respuesta que le diga OK o le falta cumplir los siguientes requerimientos...
Hola Yuri, se me ocurre que una de las formas que en lo puedes encarar es hacer un action por cada control que debas hacer, es decir, tabla a verificar o error a retornar y en la etiqueta recordset indicar de acuerdo a on-empty-return el código para hacer un forward.
Por ejemplo : el action A tiene una etiqueta recordset como esta : <transaction>... <recordser id... ... on-empty-return="1"/> ..</transaction> <on-exit return-code="0" forward-to="action de control B" />
<on-exit return-code="1" forward-to="action con mensaje error action A" />
luego action B sería algo similar <transaction>...
<recordser id... ... on-empty-return="1"/>
..</transaction>
<on-exit return-code="0" forward-to="action de control C" />
<on-exit return-code="1" forward-to="action con mensaje error action B" />
Espero haberme explicado, sino vuelve a preguntar.
Revisando este framework, que ha proposito me parece muy bueno, como debería añadirle la lógica cuando debo revisar varias tablas y según su contenido llenar otras y al final solo indicarle al usuario que si se acepto su petición. Por ejemplo, digamos que tengo un sistema de tramite documentario en una institucion educativa, un alumno hace un solicitud de curso dirigido (es decir pide que le dicten el curso de manera personalizada), el sistema debe verificar si el alumno cumple las condiciones como que debe ser alumno regular, haber aprobado una cantidad determinada de creditos, que el curso que pide no se dicte, etc, como veras debere revisar varias cosas en diferentes tablas. En funcion de esas consultas debere armar una respuesta que le diga OK o le falta cumplir los siguientes requerimientos...
Revisando este framework, que ha proposito me parece muy bueno, como debería añadirle la lógica cuando debo revisar varias tablas y según su contenido llenar otras y al final solo indicarle al usuario que si se acepto su petición. Por ejemplo, digamos que tengo un sistema de tramite documentario en una institucion educativa, un alumno hace un solicitud de curso dirigido (es decir pide que le dicten el curso de manera personalizada), el sistema debe verificar si el alumno cumple las condiciones como que debe ser alumno regular, haber aprobado una cantidad determinada de creditos, que el curso que pide no se dicte, etc, como veras debere revisar varias cosas en diferentes tablas. En funcion de esas consultas debere armar una respuesta que le diga OK o le falta cumplir los siguientes requerimientos...
El log de sesiones activas se controla en web.xml, con un listener y
un parametro del filtro de seguridad.
El soporte de lo que pides ya existe, es de uso opcional.
Para impedir mas de un login del mismo Usuario, favor ver en el
directorio /action/security/login - el validator.xml tiene comentado
los custom-validators para determinar si ya hay un login activo, en
este caso por IP (no es muy confiable si hay un proxy), pero podria
adaptarse, es un simple SQL. Los SQL estan en ese directorio.
Espero te sirva.
Saludos,
Martin
--
Registra tus gastos gratis!
Flexible y fácil de usar
http://www.martincordova.com/gastos
2009/6/25 Gustavo Javier Dottori <gustavo.dottori@...>:
>
>
> Hola Martín, no se si se te ha presentado la situación de tener que
> controlar que el mismo usuario no abra diferentes sesiones. Se que se puede
> activar el log de sesiones en el config.xml de sesiones, pero me parece que
> es sólo para llevar un log, no para controlar acceso simultaneo. Hay alguna
> facilidad para llevar el control?
>
> Saludos
>
>
Hola Martín, no se si se te ha presentado la situación de tener que controlar que el mismo usuario no abra diferentes sesiones. Se que se puede activar el log de sesiones en el config.xml de sesiones, pero me parece que es sólo para llevar un log, no para controlar acceso simultaneo. Hay alguna facilidad para llevar el control?
Hola, en caso que a alguien le interese, hoy montamos un ambiente de
prueba con este JDK y corrio bien, pero para que /action/test funcione
hay que abrir un puerto, no tiene la modalidad de JMX local como el
JDK de Sun. El catalina.sh debe ser modificado con estas opciones:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=9004
Esto para pruebas rapidas, si quieren mas seguridad pueden ponersela,
pero complica un poco la configuracion. Sin esto, no hay posibilidad
de monitorear via JMX con este JDK.
/action/test reporta esta version de Java: IBM J9 VM 1.6.0
Probamos Ajax, PDF, acceso a BD, graficos, etc. Todo funciono ok.
En los tiempos de Java 1.3, el JDK de IBM de preciaba de ser mucho mas
rapido que el de Sun, y habia competencia al respecto, la gente optaba
por uno u otro en produccion. Hoy en dia me parece que no hay motivos
para usar otra cosa que no sea el de Sun, excepto por el OpenJDK (por
tema de software libre - decreto 3390 en Vzla.), a menos que se trate
de un OS400 o mainframe y necesites el JDK de IBM obligatoriamente.
Saludos,
Martin
--
Registra tus gastos gratis!
Flexible y fácil de usar
http://www.martincordova.com/gastos
Hola, por si quieren actualizar el JAR del componente JExcelAPI que
usa Dinamica, aqui esta el link:
* http://sourceforge.net/project/showfiles.php?group_id=79926
Nosotros ya probamos las demos principales de Dinamica con soporte
Excel y funcionaron bien con la nueva version. El proximo release de
Dinamica vendra con este JAR actualizado.
Saludos,
Martin
--
Registra tus gastos gratis!
Flexible y fácil de usar
http://www.martincordova.com/gastos