Desconozco si es posible hacer lo que planteas en una aplicación de una capa, lo que si te aseguro es que en la arquitectura clásica de tres capas, es posible interceptar una consulta que por algún motivo ha resultado más extensa (o demorada) de lo esperado. Al respecto te comento, que este proceso es posible hacerlo con un manejo de excepciones, sin embargo en muchas ocasiones, esto no es lo más óptimo, por lo cual se puede llegar a procurar otros mecanismos, como por ejemplo a través de la segmentación de la consulta.
De cualquier manera, por tu mensaje, deduzco que nada de esto aplica, así que paso a sugerirte una solución más práctica para tu aplicación unicapa, la cual quizás se desvíe de tu interés inicial, pero que bien pudiera funcionarte.
Simplemente efectúa un COUNT a la consulta, antes de ejecutar la consulta real y en base a tus propios parámetros y estimaciones determina cuando es necesario alertar acerca de una consulta demasiado extensa y cuando puedes efectuarla con el rango planteado. Incluso, podrías aprovechar que tienes una sola capa para establecer dinámicamente que la consulta debe paginarse y presentarla de tal manera que no presentes nunca un error (Una solución más elegante).
Esperando que mis comentarios te hallan sido de utilidad, me despido sin más,
Atentamente,
-- David Alexander Rengifo Rodríguez IBM ACE Professional Certificate Consultor Externo - Venezuela
Deseo anular (interrumpir) la ejecución de una jsp si transurre
demasiado tiempo para generar un listado en HTML.
He notado que ciertas paginas jsp de mi aplicación demoran mas de un
minuto., por lo tanto me gustaría mostrar un mensaje al usuario
indicando que la consulta es demasiada extensa y por lo tanto que
reduzca los parametros de Fecha buscados., logrando con esto poner un
tiempo limite a que responda el servidor., y en los casos donde la
consulta no se termino de generar en ese tiempo., mostrar la información
hasta donde se proceso., ó la otra alternativa seria mostrar un mensaje
al usuario indicando que acote los parametros de busqueda.
Quiero lograr con esto., que un usuario., en base a los parametros
de una consulta., como así tambien., por la carga de procesamiento que
puede tener el servidor en ese momento., no sature o asfixie al
Servidor., ocupando solo al servidor un minuto o menos., en caso que no
pueda responder en ese tiempo., interrumpir la ejecución de la jsp y
mostrar algun cartel indicando el inconveniente.
Esto mismo (lo de interrumpir la ejecucion de una jsp) desearía
realizarlo para el caso en donde el usuario por diferentes causas (se
canso de esperar la consulta.,ó realizo la consulta pero no espero que
terminará y salto a otra pagina jsp., etc) desvió el hilo de ejecucion.,
y se encuentra consultando alguna otra jsp., pero el servidor sigue
procesando la jsp de la consulta de la peticion anterior., y mantiene
innecesariamente ocupado el servidor con la consulta anterior.
Es esto posible (lo de interrumpir una jsp por exceso de tiempo., o
por saltar a otra jsp) ?
Cabe señalar que utilizo Java 5.0 y el Servidor es Tomcat 5.0.28.
Estimados Listeros:
Deseo anular (interrumpir) la ejecución de una jsp si transurre
demasiado tiempo para generar un listado en HTML.
He notado que ciertas paginas jsp de mi aplicación demoran mas de un
minuto., por lo tanto me gustaría mostrar un mensaje al usuario
indicando que la consulta es demasiada extensa y por lo tanto que
reduzca los parametros de Fecha buscados., logrando con esto poner un
tiempo limite a que responda el servidor., y en los casos donde la
consulta no se termino de generar en ese tiempo., mostrar la información
hasta donde se proceso., ó la otra alternativa seria mostrar un mensaje
al usuario indicando que acote los parametros de busqueda.
Quiero lograr con esto., que un usuario., en base a los parametros
de una consulta., como así tambien., por la carga de procesamiento que
puede tener el servidor en ese momento., no sature o asfixie al
Servidor., ocupando solo al servidor un minuto o menos., en caso que no
pueda responder en ese tiempo., interrumpir la ejecución de la jsp y
mostrar algun cartel indicando el inconveniente.
Esto mismo (lo de interrumpir la ejecucion de una jsp) desearía
realizarlo para el caso en donde el usuario por diferentes causas (se
canso de esperar la consulta.,ó realizo la consulta pero no espero que
terminará y salto a otra pagina jsp., etc) desvió el hilo de ejecucion.,
y se encuentra consultando alguna otra jsp., pero el servidor sigue
procesando la jsp de la consulta de la peticion anterior., y mantiene
innecesariamente ocupado el servidor con la consulta anterior.
Es esto posible (lo de interrumpir una jsp por exceso de tiempo., o
por saltar a otra jsp) ?
Cabe señalar que utilizo Java 5.0 y el Servidor es Tomcat 5.0.28.
Muchas Gracias
Pablo
Buenas tardes,
En la empresa en la que estoy trabajando estamos buscando gente para un
cargo fijo que tenga conocimientos medios en Tecnologia Java. Estamos
trabajando con Swing, Spring y Hibernate (por lo que estos
conocimientos son muy valorados).
Si a alguno de ustedes le interesa trabajar con estos frameworks, por
favor envie su CV a gonzaloronvera@...
Saludos!
Lucas, otra vez he revisado el firewall y esta apagado, incluso el norton esta todo apagado de forma permanente.
Ademas, si creo un odbc y hago una conexion usando el jdbcodbc funciona ok, pero cuando intento usar el driver, netbeans me lanza el siguiente error: ConnectException: connection refused: connect
Como entenderan la idea es usar el pool y el datasource y no puedo hacerlo por odbc. Ayuden. -----------------------
Jaime A. Vargas Pereyra
Piura - Perú
--- El mié 16-jul-08, lucas peralta <lucas.peralta@...> escribió:
De: lucas peralta <lucas.peralta@...> Asunto: Re: [javaSpain] ayuda con pool connection en glassfish y sql2005 A: javaSpain@yahoogroups.com Fecha: miércoles, 16 julio, 2008, 12:33 pm
fijate si tenes corriendo algun antivirus que este filtrando el puerto me pasaba algo parecido y despues de darle muchas vueltas era eso
realmente lo que hice fue ingresar a regedt32 y buscar el port asignado a
mssql y ponerle 1433, antes instale mssql2005.
El día 16 de julio de 2008 12:28, jaime arturo vargas pereyra
<jaimevargasp@ yahoo.com> escribió:
> Sebastian, hola. He seguido tus indicaciones y estar seguro lo que indicas;
> obtengo el mismo error.Gracias
> Amigos, den una manito....
> ------------ --------- --
> Jaime A. Vargas Pereyra
> Piura - Perú
>
> --- El mié 16-jul-08, Sebastian Gurin <sgurin@montevideo. com.uy> escribió:
>
> De: Sebastian Gurin <sgurin@montevideo. com.uy>
> Asunto: Re: [javaSpain] ayuda con pool connection en glassfish y sql2005
> A: javaSpain@yahoogrou ps.com
> Fecha: miércoles, 16 julio, 2008, 11:43 am
>
> revisa:
>
> 1) que el firewall de vista no esté bloqueando el puerto utilizado por el
> server sql
> 2) escribir correctamente ip:puerto nombreUsuario y contraseña
> correctamente. ..
>
> suerte
>
> On Wed, 16 Jul 2008 02:55:17 -0700 (PDT)
> jaime arturo vargas pereyra <jaimevargasp@ yahoo.com> wrote:
>
>> Amigos:
>> Hola. Tengo el siguiente problema y recurro a uds porque no encuentro como
>> solucionarlo, he leido todo lo que se supone se deba hacer; pero no he
>> tenido exito.
>> Ademas indico que:
>> 1. tengo netbeans6.1, que trae integrado glssfish y sqlserver2005 express
>> (con su driver instalado)
>> 2. Quiero crear un pool connection que luego me permita crear un
>> datasource y poder utilizarlo en la aplicacion que estoy tratando de
>> programar... ......... ...
>> 3. Me lanza ahora este error: La conexión TCP/IP al host ha fallado.
>> java.net.ConnectExc eption: Connection refused: connect
>>
>> Le he puesto estos parametros-propieda des:
>>
>> databaseName bd01
>> portNumber 1433
>> serverName JAIME-PC
>> password sa
>> user sa
>>
>> Les pido amigos, que me den una mano con esto y poder solucionar este
>> problemita, que de seguro sera un buen antecedente para los demas javeros.
>> Saludos.
>> ------------ --------- --
>> Jaime A. Vargas Pereyra
>> Piura - Perú
>>
>>
>> ____________ _________ _________ _________ _________ _________ _
>> Yahoo! MTV Blog & Rock >¡Cuéntanos tu historia, inspira una canción y
>> gánate un viaje a los Premios MTV! Participa aquí http://mtvla.yahoo.com/
>>
>
> --
> Sebastian Gurin <sgurin@montevideo. com.uy>
>
> ____________ _________ _________ __
> Yahoo! MTV Blog Rock
> ¡Cuéntanos tu historia, inspira una canción y gánate un viaje a los Premios
> MTV!
> Participa aquí http://mtvla. yahoo.com/
>
--
Atentamente,
Moisés Alberto Lindo Gutarra
Asesor - Desarrollador Java / Open Source
Linux Registered User #431131 - http://counter. li.org/
Cel: (511) 995081720
Amigos:
Hola. Tengo el siguiente problema y recurro a uds porque no encuentro como
solucionarlo, he leido todo lo que se supone se deba hacer; pero no he tenido
exito.
Ademas indico que:
1. tengo netbeans6.1, que trae integrado glssfish y sqlserver2005 express (con
su driver instalado)
2. Quiero crear un pool connection que luego me permita crear un datasource y
poder utilizarlo en la aplicacion que estoy tratando de programar...............
3. Me lanza ahora este error: La conexión TCP/IP al host ha fallado.
java.net.ConnectException: Connection refused: connect
Le he puesto estos parametros-propiedades:
databaseName bd01
portNumber 1433
serverName JAIME-PC
password sa
user sa
Les pido amigos, que me den una mano con esto y poder solucionar este
problemita, que de seguro sera un buen antecedente para los demas javeros.
Saludos.
-----------------------
Jaime A. Vargas Pereyra
Piura - Perú
________________________________________________________________________________\
____
Yahoo! MTV Blog & Rock >¡Cuéntanos tu historia, inspira una canción y gánate
un viaje a los Premios MTV! Participa aquí http://mtvla.yahoo.com/
si lo estas trabajando en windows xp o windows vista vas a tener ese problema
por cuestiones de seguridad de esos sistemas operativos, puedes buscar
en google pero no hay una solución simple, te recomiendo que uses windows 2003
o windows 2000 con sus respectivos service pack y asunto arreglado.
El día 16 de julio de 2008 4:55, jaime arturo vargas pereyra
<jaimevargasp@...> escribió:
> Amigos:
> Hola. Tengo el siguiente problema y recurro a uds porque no encuentro como
> solucionarlo, he leido todo lo que se supone se deba hacer; pero no he
> tenido exito.
> Ademas indico que:
> 1. tengo netbeans6.1, que trae integrado glssfish y sqlserver2005 express
> (con su driver instalado)
> 2. Quiero crear un pool connection que luego me permita crear un datasource
> y poder utilizarlo en la aplicacion que estoy tratando de
> programar...............
> 3. Me lanza ahora este error: La conexión TCP/IP al host ha fallado.
> java.net.ConnectException: Connection refused: connect
>
> Le he puesto estos parametros-propiedades:
>
> databaseName bd01
> portNumber 1433
> serverName JAIME-PC
> password sa
> user sa
>
> Les pido amigos, que me den una mano con esto y poder solucionar este
> problemita, que de seguro sera un buen antecedente para los demas javeros.
> Saludos.
> -----------------------
> Jaime A. Vargas Pereyra
> Piura - Perú
>
> __________________________________________________________
> Yahoo! MTV Blog & Rock >¡Cuéntanos tu historia, inspira una canción y
> gánate un viaje a los Premios MTV! Participa aquí http://mtvla.yahoo.com/
>
>
--
Atentamente,
Moisés Alberto Lindo Gutarra
Asesor - Desarrollador Java / Open Source
Linux Registered User #431131 - http://counter.li.org/
Cel: (511) 995081720
MSN: mlindo@...
-----------------------
Jaime A. Vargas Pereyra
Piura - Perú
--- El mié 16-jul-08, lucas peralta <lucas.peralta@...> escribió:
De: lucas peralta <lucas.peralta@...> Asunto: Re: [javaSpain] ayuda con pool connection en glassfish y sql2005 A: javaSpain@yahoogroups.com Fecha: miércoles, 16 julio, 2008, 12:33 pm
fijate si tenes corriendo algun antivirus que este filtrando el puerto me pasaba algo parecido y despues de darle muchas vueltas era eso
realmente lo que hice fue ingresar a regedt32 y buscar el port asignado a
mssql y ponerle 1433, antes instale mssql2005.
El día 16 de julio de 2008 12:28, jaime arturo vargas pereyra
<jaimevargasp@ yahoo.com> escribió:
> Sebastian, hola. He seguido tus indicaciones y estar seguro lo que indicas;
> obtengo el mismo error.Gracias
> Amigos, den una manito....
> ------------ --------- --
> Jaime A. Vargas Pereyra
> Piura - Perú
>
> --- El mié 16-jul-08, Sebastian Gurin <sgurin@montevideo. com.uy> escribió:
>
> De: Sebastian Gurin <sgurin@montevideo. com.uy>
> Asunto: Re: [javaSpain] ayuda con pool connection en glassfish y sql2005
> A: javaSpain@yahoogrou ps.com
> Fecha: miércoles, 16 julio, 2008, 11:43 am
>
> revisa:
>
> 1) que el firewall de vista no esté bloqueando el puerto utilizado por el
> server sql
> 2) escribir correctamente ip:puerto nombreUsuario y contraseña
> correctamente. ..
>
> suerte
>
> On Wed, 16 Jul 2008 02:55:17 -0700 (PDT)
> jaime arturo vargas pereyra <jaimevargasp@ yahoo.com> wrote:
>
>> Amigos:
>> Hola. Tengo el siguiente problema y recurro a uds porque no encuentro como
>> solucionarlo, he leido todo lo que se supone se deba hacer; pero no he
>> tenido exito.
>> Ademas indico que:
>> 1. tengo netbeans6.1, que trae integrado glssfish y sqlserver2005 express
>> (con su driver instalado)
>> 2. Quiero crear un pool connection que luego me permita crear un
>> datasource y poder utilizarlo en la aplicacion que estoy tratando de
>> programar... ......... ...
>> 3. Me lanza ahora este error: La conexión TCP/IP al host ha fallado.
>> java.net.ConnectExc eption: Connection refused: connect
>>
>> Le he puesto estos parametros-propieda des:
>>
>> databaseName bd01
>> portNumber 1433
>> serverName JAIME-PC
>> password sa
>> user sa
>>
>> Les pido amigos, que me den una mano con esto y poder solucionar este
>> problemita, que de seguro sera un buen antecedente para los demas javeros.
>> Saludos.
>> ------------ --------- --
>> Jaime A. Vargas Pereyra
>> Piura - Perú
>>
>>
>> ____________ _________ _________ _________ _________ _________ _
>> Yahoo! MTV Blog & Rock >¡Cuéntanos tu historia, inspira una canción y
>> gánate un viaje a los Premios MTV! Participa aquí http://mtvla.yahoo.com/
>>
>
> --
> Sebastian Gurin <sgurin@montevideo. com.uy>
>
> ____________ _________ _________ __
> Yahoo! MTV Blog Rock
> ¡Cuéntanos tu historia, inspira una canción y gánate un viaje a los Premios
> MTV!
> Participa aquí http://mtvla. yahoo.com/
>
--
Atentamente,
Moisés Alberto Lindo Gutarra
Asesor - Desarrollador Java / Open Source
Linux Registered User #431131 - http://counter. li.org/
Cel: (511) 995081720
On Wed, 2008-07-09 at 03:59 +0000, danielp_11 wrote:
> que diferencia hay entre java.swing y java.awt, solo la forma de los
> botones o el codigo tambien es distinto?
>
>
AWT es el primer Toolkit que vino con Java, utiliza los controles
nativos del sistema operativo. Swing salió como respuesta al problema
que no todos los sistemas operativos tienen las misma funcionalidad en
controles (razón por la que AWT es muy básico, solo tiene lo común entre
todos los OSs), y cada uno tiene una manera diferente de procesar los
eventos. Swing dibuja todos los componentes por si mismo utilizando los
mas mínimo del sistema operativo (la ventana), todos los controles
dentro de la ventana son 100% Java y su comportamiento es exactamente
igual en cada plataforma (Swing usa una porción de AWT para esa parte
que es dependiente del OS).
La ventaja natural de Swing es su arquitectura MVC (model view
controller) que permite desacoplar la estructura de datos de su manera
de ser presentada. Esta arquitectura, aunque le complica la vida al
programados Swing novato, ayuda mucho cuando ya se tiene la práctiva
necesaria, por ejemplo tener en memoria 100 mil registros y mostrarlos
en una Table sin traer al OS al piso generando una tabla con 100 mil
componentes físicos dentro de el
On Tue, 2008-07-08 at 17:18 +0000, neithblue009 wrote:
> Buenas tardes, me gustaria saber si Java es 100% libre. y si no
> ¿Cuales son las librerias privadas? Sin contar el proyecto icedTea de
> RedHat.
>
Java es 100% libre.. no entiendo porque no quieres contar icedtea, en
Fedora 9 y RHEL ya está disponible OpenJDK 6 (pasando la certificación
oficial de Sun) y es basado en en trabajo de la gente de Red Hat y otros
en IcedTea. Si te refieres el Java de Sun directamente, este no será
100% libre hasta que no saquen una versión definitiva de Java 7, y esto
es por la simple razón de que ya Java 6 está liberado y no van a estar
cambiando reimplementaciones internas de golpe a la gente que ya está
usando Java 6 en sus proyectos (y es algo totalmente comprensible)
Hola gente primero estoy contengo al haber encontrado un grupo de
java hace recien me inscribi espero q me puedan ayudar en todas mis
dudas hace poco que estoy con java.
como hago para que al ingresar un texto en un TextField al presionar
enter me aparesca en un Text area lo que escribi en el TextField?.
(tipo chat)
saludos
Buenos Dias
Necesito una clase, o una forma de como converti de PDF a XML o alguna
herrmienta
muchas gracias
saludos
.~.
( 0 0 ) Tommy Ponce Lopez
/ V \ Celular: (504) 32909455
// \\ Email:tommy.ponce[@]gmail[.]com
/(( _ ))\ Tegucigalpa, Honduras
oo0 0oo
Si Quieres Que Tu Web Sea Un Cuadrado, Hazte Con Un Diseñador.
Si Quieres Que Tu Web Sea Una Herramienta, Escoge Un Programador.
Disculpenme que moleste pero aprovechando que lei el mail en el cual se hablaba de un instalador me gustaria saber si me podrian ayudar comentandome que paquetes para realizar instaladores "al estilo windows" en cualquier sistema operativo han utilizado y que experiencias han tenido.
Esto es basicamente porque estoy realizando un relevamiento de que herramientas hay y que facilidades proveen como para poder elegir el que mejor se adapte a mi aplicacion.
Desde ya muchas gracias por su
colaboracion. Atentamente.
Alejandro Scott.
__________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
No conozco Advance Installer, pero te recomiendo que pruebes con una aplicación
de software libre llamada Jsmooth, es fácil de instalar y de utilizar, y nunca
me ha dado problemas con los permisos.
Saludos!
To: SoloJava@... From: robert@... Date: Tue, 3 Jun 2008 15:37:27 -0430 Subject: Re: [SoloJava] Permisologia en Windows Vista
On Tue, 2008-06-03 at 13:27 -0430, Antonio León wrote:
> Buenas tardes.
>
>
>
> Tengo una aplicación hecha en Java, empaquetada para instalación
> utilizando Advance Installer.
>
>
>
> Todo va bien con la aplicación cuando se instala y ejecuta en sistemas
> operativos anteriores a Windows Vista, pero aunque la instalación con
> Windows Vista ocurre sin inconvenientes, cuando se ejecuta la
> aplicación intenta obtener permisos para escribir en el directorio
> donde está instalada (por defecto C:\Program Files\Empresa\Aplicacion)
> y el sistema operativo le niega los permisos de escritura en ese
> directorio, por lo que ocurre una falla.
Tienes varias opciones, de la mas rápida a la más apropiada (se pone más
feo cada vez que bajas en esta lista :-P)
1. no conozco advanced installer, pero debe tener una opción para
modificar la permisología en Windows (no lo recomiendo)
2. Usar mecanismos propios de Java para grabar datos (por ejemplo
preferences API http://java.sun.com/j2se/1.4.2/docs/guide/lang/preferences.html)
3. Leer la propiedad de Java "user.home" y grabar los datos que
requiera tu programa en alguna carpeta que tu crees allí
(.myaplicacion quedaría bien porque hasta en Unix/Linux te
crearía un directorio escondido) NOTA he leido que Windows Vista
no te permite grabar por defecto en tu propio user home (una
loquera, pero como que es cierto) así que tienes que seguir
explorando las opciones siguientes (y es recomendable seguir las
reglas del OS que cambiar como viene por defecto)
4. Si estás usando Java 5 o superior, puedes obtener la variable de
entorno APPDATA cuando detectas que tu aplicación está corriendo
en Windows, su valor en Windows XP sería algo como "C:\Document
and Settings\usuario\Datos de Programa", en Vista está en algún
lugar de "C:\Users" que no recuerdo ahora
5. Solo en Windows Vista existe LOCALAPPDATA como variable de
entorno que almacena un directorio muy parecido a APPDATA pero
que por las convenciones de Windows, solo almacena datos de
programas específicos a un usuario en una maquina en particular,
es decir si el ambiente Windows tiene Roaming Profiles (perfiles
de usuarios en la red) esos datos no se replicarán (OJO
LOCALAPPDATA no es una variable de entorno de Windows XP, el
directorio existe pero no la variable)
6. si necesitas usar LOCALAPPDATA en Windows XP también no te queda
más que usar JNI con la función C de Windows "SHGetFolderPath" http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx
¿Que opción tomar?, depende de que grabas,
Yo nunca tomaría la opción 1 :-P. opción 2 si lo que grabas son datos de
configuración tipo Properties. opción 3 como mínimo si almacenas
archivos de contenido variado (no se cache, imágenes, etc),
Las opciones 4,5,6 solo hacen que tu aplicación cumpla con las reglas de
desarrollo Windows de MS, necesarias para una certificación por ejemplo,
o si quieres que tu usuario tenga una experiencia 100% satisfactoria en
Windows (es decir que ni se de cuenta que es una aplicación Java).
Opción 4 si los datos que almacenas son datos que el usuario puede usar
desde cualquier máquina (si usa Roaming Profiles), opción 5 si los
archivos son estrictamente locales, y por último opción 6, lo mismo que
la 5 pero necesaria para Windows XP
Probablemente tengas que usar una combinación de estas, si tienes datos
a almacenar de diferente naturaleza
> Cuando la instalación se realiza en un directorio diferente (por
> ejemplo C:\Aplicacion), con Windows Vista, todo funciona
> correctamente.
>
>
>
> Lo que quisiera es modificar el código para solicitar al sistema
> operativo los permisos para escribir, independientemente del
> directorio donde se instale la aplicación.
>
no te recomiendo cambiar permisologías, debes adaptar tu programa a las
convenciones de Windows. Si no tendrás siempre problemas, por ejemplo
hay programas que instalan en "Archivos de Programa" e intentan grabar
allí, algo que hasta en Windows XP falla cuando usas un usuario no
administrador (cosa que se debe hacer siempre y hasta ahora es que MS
apredió a obligar a los desarrolladores a respetar esa regla tan básica
que otros OSs han hecho por años)
>
>
> ¿Alguno sabe qué debo o puedo hacer?
>
>
>
> Gracias de Antemano
>
>
>
> --
>
> Tarde o temprano, la teoría es asesinada por la experiencia. Albert
> Einstein
>
> Antonio León
>
>
________________________________________
Robert Marcano
On Tue, 2008-06-03 at 13:27 -0430, Antonio León wrote:
> Buenas tardes.
>
>
>
> Tengo una aplicación hecha en Java, empaquetada para instalación
> utilizando Advance Installer.
>
>
>
> Todo va bien con la aplicación cuando se instala y ejecuta en sistemas
> operativos anteriores a Windows Vista, pero aunque la instalación con
> Windows Vista ocurre sin inconvenientes, cuando se ejecuta la
> aplicación intenta obtener permisos para escribir en el directorio
> donde está instalada (por defecto C:\Program Files\Empresa\Aplicacion)
> y el sistema operativo le niega los permisos de escritura en ese
> directorio, por lo que ocurre una falla.
Tienes varias opciones, de la mas rápida a la más apropiada (se pone más
feo cada vez que bajas en esta lista :-P)
1. no conozco advanced installer, pero debe tener una opción para
modificar la permisología en Windows (no lo recomiendo)
2. Usar mecanismos propios de Java para grabar datos (por ejemplo
preferences API
http://java.sun.com/j2se/1.4.2/docs/guide/lang/preferences.html)
3. Leer la propiedad de Java "user.home" y grabar los datos que
requiera tu programa en alguna carpeta que tu crees allí
(.myaplicacion quedaría bien porque hasta en Unix/Linux te
crearía un directorio escondido) NOTA he leido que Windows Vista
no te permite grabar por defecto en tu propio user home (una
loquera, pero como que es cierto) así que tienes que seguir
explorando las opciones siguientes (y es recomendable seguir las
reglas del OS que cambiar como viene por defecto)
4. Si estás usando Java 5 o superior, puedes obtener la variable de
entorno APPDATA cuando detectas que tu aplicación está corriendo
en Windows, su valor en Windows XP sería algo como "C:\Document
and Settings\usuario\Datos de Programa", en Vista está en algún
lugar de "C:\Users" que no recuerdo ahora
5. Solo en Windows Vista existe LOCALAPPDATA como variable de
entorno que almacena un directorio muy parecido a APPDATA pero
que por las convenciones de Windows, solo almacena datos de
programas específicos a un usuario en una maquina en particular,
es decir si el ambiente Windows tiene Roaming Profiles (perfiles
de usuarios en la red) esos datos no se replicarán (OJO
LOCALAPPDATA no es una variable de entorno de Windows XP, el
directorio existe pero no la variable)
6. si necesitas usar LOCALAPPDATA en Windows XP también no te queda
más que usar JNI con la función C de Windows "SHGetFolderPath"
http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx
¿Que opción tomar?, depende de que grabas,
Yo nunca tomaría la opción 1 :-P. opción 2 si lo que grabas son datos de
configuración tipo Properties. opción 3 como mínimo si almacenas
archivos de contenido variado (no se cache, imágenes, etc),
Las opciones 4,5,6 solo hacen que tu aplicación cumpla con las reglas de
desarrollo Windows de MS, necesarias para una certificación por ejemplo,
o si quieres que tu usuario tenga una experiencia 100% satisfactoria en
Windows (es decir que ni se de cuenta que es una aplicación Java).
Opción 4 si los datos que almacenas son datos que el usuario puede usar
desde cualquier máquina (si usa Roaming Profiles), opción 5 si los
archivos son estrictamente locales, y por último opción 6, lo mismo que
la 5 pero necesaria para Windows XP
Probablemente tengas que usar una combinación de estas, si tienes datos
a almacenar de diferente naturaleza
> Cuando la instalación se realiza en un directorio diferente (por
> ejemplo C:\Aplicacion), con Windows Vista, todo funciona
> correctamente.
>
>
>
> Lo que quisiera es modificar el código para solicitar al sistema
> operativo los permisos para escribir, independientemente del
> directorio donde se instale la aplicación.
>
no te recomiendo cambiar permisologías, debes adaptar tu programa a las
convenciones de Windows. Si no tendrás siempre problemas, por ejemplo
hay programas que instalan en "Archivos de Programa" e intentan grabar
allí, algo que hasta en Windows XP falla cuando usas un usuario no
administrador (cosa que se debe hacer siempre y hasta ahora es que MS
apredió a obligar a los desarrolladores a respetar esa regla tan básica
que otros OSs han hecho por años)
>
>
> ¿Alguno sabe qué debo o puedo hacer?
>
>
>
> Gracias de Antemano
>
>
>
> --
>
> Tarde o temprano, la teoría es asesinada por la experiencia. Albert
> Einstein
>
> Antonio León
>
>
________________________________________
Robert Marcano
web: http://www.marcanoonline.com/
gpg --keyserver hkp://pgp.mit.edu/ --recv-key 72A0DCFD
Tengo una aplicación hecha en Java, empaquetada para instalación
utilizando Advance Installer.
Todo va bien con la aplicación cuando se instala y ejecuta en
sistemas operativos anteriores a Windows Vista, pero aunque la instalación con
Windows Vista ocurre sin inconvenientes, cuando se ejecuta la aplicación
intenta obtener permisos para escribir en el directorio donde está instalada
(por defecto C:\Program Files\Empresa\Aplicacion) y el sistema operativo le
niega los permisos de escritura en ese directorio, por lo que ocurre una falla.
Cuando la instalación se realiza en un directorio diferente (por
ejemplo C:\Aplicacion), con Windows Vista, todo funciona correctamente.
Lo que quisiera es modificar el código para solicitar al sistema
operativo los permisos para escribir, independientemente del directorio donde
se instale la aplicación.
¿Alguno sabe qué debo o puedo hacer?
Gracias de Antemano
--
Tarde o temprano, la teoría es asesinada por la experiencia.
Albert Einstein
To: SoloJava@... From: robert@... Date: Thu, 22 May 2008 18:23:33 -0430 Subject: Re: [SoloJava] Tonteria de Java
muy interesante la pregunta (tiempo que no se pregunta algo que no es del tipo "me puedes hacer la tarea" jajajajaj), recuerda que todo lo que ves con los parámetros variables (...) y las conversiones automáticas (autoboxing) de y hacia tipos de datos básicos (Integer <---> int) son un adorno del compilador,
Existen reglas para que el compilador sepa cual tomar tomando en cuenta cuando hay varargs, autoboxing o parámetros presentes, ejemplo, ¿cual se invoca aqui?
public static void main(String...p) { metodo(1,2); }
static void metodo(int ... a) { out.println("1"); }
static void metodo(int a, int b) { out.println("2"); }
el comportamiento sigue esas reglas y aunque parece extraño, la única recomendación que te puedo dar es la de no hacer mucha sobrecarga de métodos cuando usas varargs, como dice la gente de Sun en http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
"Generally speaking, you should not overload a varargs method, or it will be difficult for programmers to figure out which overloading gets called."
NOTA: personalmente detesto autoboxing y hago que el compilador me de un warning cuando intenta hacerlo, para que yo lo corrija, luego cambio el código a conversión manual, trae muchos errores por confusión y también de performance si no se tiene cuidado, por ejemplo muchos autoboxing dentro de un ciclo ________________________________________ Robert Marcano
To: SoloJava@... From: robert@... Date: Thu, 22 May 2008 18:23:33 -0430 Subject: Re: [SoloJava] Tonteria de Java
muy interesante la pregunta (tiempo que no se pregunta algo que no es del tipo "me puedes hacer la tarea" jajajajaj), recuerda que todo lo que ves con los parámetros variables (...) y las conversiones automáticas (autoboxing) de y hacia tipos de datos básicos (Integer <---> int) son un adorno del compilador,
Existen reglas para que el compilador sepa cual tomar tomando en cuenta cuando hay varargs, autoboxing o parámetros presentes, ejemplo, ¿cual se invoca aqui?
public static void main(String...p) { metodo(1,2); }
static void metodo(int ... a) { out.println("1"); }
static void metodo(int a, int b) { out.println("2"); }
el comportamiento sigue esas reglas y aunque parece extraño, la única recomendación que te puedo dar es la de no hacer mucha sobrecarga de métodos cuando usas varargs, como dice la gente de Sun en http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
"Generally speaking, you should not overload a varargs method, or it will be difficult for programmers to figure out which overloading gets called."
NOTA: personalmente detesto autoboxing y hago que el compilador me de un warning cuando intenta hacerlo, para que yo lo corrija, luego cambio el código a conversión manual, trae muchos errores por confusión y también de performance si no se tiene cuidado, por ejemplo muchos autoboxing dentro de un ciclo ________________________________________ Robert Marcano
On Thu, 2008-05-22 at 13:25 +0200, koxkorrita@... wrote:
> Tengo un problema con el pintado de unos datos en una jsp usando jstl.
> Resulta que tengo un objeto que dentro tiene una lista de objetos (nivel
> 1) y cada objeto de esta lista tiene a su vez una lista de objetos (nivel
> 2)
> Resulta que el nivel uno con lo siguiente lo consigo pintar peor no
> consigo pintar los valores del nivel dos correspondiente a cada item de la
> lista 1.
> Es decir quiero pintar algo del tipo de:
> .-entrada1
> .-.-entrada1.1
> .-.-entrada1.2
> .-.-entrada1.3
> .-.-entrada1.n
> .-entrada2
> .-.-entrada2.1
> .-.-entrada2.2
> .-.-entrada2.3
> .-.-entrada2.n
> .-entrada3
>
> hago lo siguiente teniendo en cuenta que la primera lista me llega dentro
> del objeto objGeneralObj y se llama categorizacion
> <c:forEach var="menu1" items="${objGeneralObj.categorizacion}"
> varStatus="statusDest1">
> <c:out value="${menu1.tipo_es}"/> ** qui he pintado el nivel 1 bien pero
> en la linea sigueinte quiero acceder al item en el que estoy a la
> subcategoria, nivel 2, pero me peta.
> <c:forEach var="menu2"
> items="${objGeneralObj.categorizacion.lSubcategorizacion}"
> varStatus="statusDest2">
> <c:out value="${menu2.subtipo_es}"/>
> </c:forEach>
> </c:forEach>
si recuerdo bien, tu error está aquí
<c:forEach var="menu2"
items="${objGeneralObj.categorizacion.lSubcategorizacion}"
este es el segundo nivel, objGeneralObj.categorizacion debe ser una
colección on un arreglo que ya estas iterando en el primer c:forEach,
por lo que debes usar la variable de ese primer c:forEach en el segundo
nivel
<c:forEach var="menu2" items="${menu1.lSubcategorizacion}"
>
>
>
> me podéis ayudar?
> Muchísimas gracias
>
>
> ------------------------------------
>
> (*)La actividad aun no termina visita http://solojava.blogspot.com
> -------------------------------------------
> Estas recibiendo este email porque eres miembro del grupo SoloJava,
> http://espanol.groups.yahoo.com/group/SoloJava/
>
> Si deseas retirarte solo envia un email a:
SoloJava-unsubscribe@yahoogroups.com
> ------------
> You area part of the group SoloJava,
> http://groups.yahoo.com/group/SoloJavaEnlaces a Yahoo! Grupos
>
>
>
>
>
________________________________________
Robert Marcano
web: http://www.marcanoonline.com/
gpg --keyserver hkp://pgp.mit.edu/ --recv-key 72A0DCFD
Tengo un problema con el pintado de unos datos en una jsp usando jstl.
Resulta que tengo un objeto que dentro tiene una lista de objetos (nivel
1) y cada objeto de esta lista tiene a su vez una lista de objetos (nivel
2)
Resulta que el nivel uno con lo siguiente lo consigo pintar peor no
consigo pintar los valores del nivel dos correspondiente a cada item de la
lista 1.
Es decir quiero pintar algo del tipo de:
.-entrada1
.-.-entrada1.1
.-.-entrada1.2
.-.-entrada1.3
.-.-entrada1.n
.-entrada2
.-.-entrada2.1
.-.-entrada2.2
.-.-entrada2.3
.-.-entrada2.n
.-entrada3
hago lo siguiente teniendo en cuenta que la primera lista me llega dentro
del objeto objGeneralObj y se llama categorizacion
<c:forEach var="menu1" items="${objGeneralObj.categorizacion}"
varStatus="statusDest1">
<c:out value="${menu1.tipo_es}"/> ** qui he pintado el nivel 1 bien pero
en la linea sigueinte quiero acceder al item en el que estoy a la
subcategoria, nivel 2, pero me peta.
<c:forEach var="menu2"
items="${objGeneralObj.categorizacion.lSubcategorizacion}"
varStatus="statusDest2">
<c:out value="${menu2.subtipo_es}"/>
</c:forEach>
</c:forEach>
me podéis ayudar?
Muchísimas gracias
muy interesante la pregunta (tiempo que no se pregunta algo que no es
del tipo "me puedes hacer la tarea" jajajajaj), recuerda que todo lo que
ves con los parámetros variables (...) y las conversiones automáticas
(autoboxing) de y hacia tipos de datos básicos (Integer <---> int) son
un adorno del compilador,
Existen reglas para que el compilador sepa cual tomar tomando en cuenta
cuando hay varargs, autoboxing o parámetros presentes, ejemplo, ¿cual
se invoca aqui?
public static void main(String...p)
{
metodo(1,2);
}
static void metodo(int ... a)
{
out.println("1");
}
static void metodo(int a, int b)
{
out.println("2");
}
el comportamiento sigue esas reglas y aunque parece extraño, la única
recomendación que te puedo dar es la de no hacer mucha sobrecarga de
métodos cuando usas varargs, como dice la gente de Sun en
http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
"Generally speaking, you should not overload a varargs method, or it
will be difficult for programmers to figure out which overloading gets
called."
NOTA: personalmente detesto autoboxing y hago que el compilador me de un
warning cuando intenta hacerlo, para que yo lo corrija, luego cambio el
código a conversión manual, trae muchos errores por confusión y también
de performance si no se tiene cuidado, por ejemplo muchos autoboxing
dentro de un ciclo
________________________________________
Robert Marcano
web: http://www.marcanoonline.com/
gpg --keyserver hkp://pgp.mit.edu/ --recv-key 72A0DCFD
Hola Hector,
La verdad es que creo que la pregunta no se entiende.
Saludos.
--- En SoloJava@..., Hector de Gracia <admisecreto@...>
escribió:
>
>
>
>
> ----- Forwarded Message ----
> From: Hector de Gracia <admisecreto@...>
> To: SoloJava <SoloJava@...>
> Sent: Saturday, May 17, 2008 10:11:26 AM
> Subject: [SoloJava] CONSULTA
>
>
> Buenos dias, me gustaria me puedan ayudar con algo simple, estoy
haciendo un programa en java y el caso es el siguiente:
>
> Tengo una tabla que tiene cuenta, puntos, programa, cada cuenta
puede tener hasta 3 programas, como hago para restar por programa?,
si yo totalizo el monto de los 3 programas?
>
> Gracias
>
Miren esto a ver si tengo razon...
public static void main(String...p)
{
metodo(1,2,3,4);
}
static void metodo(Integer[] a)
{
out.println("1");
}
static void metodo(Integer ... a)
{
out.println("2");
}
Se genera un error diciendo: "metodo(java.lang.Integer[]) is already
defined in Principal"
Por lo que concluyo que el compilador considera que metodo(Integer[]
a) == metodo(Integer... a)
Por otro lado...
public static void main(String...p)
{
metodo(1,2,3,4);
}
static void metodo(int ... a)
{
out.println("1");
}
static void metodo(Integer ... a)
{
out.println("2");
}
Lo que me produce el error: reference to metodo is ambiguous,
in Principal and method metodo(java.lang.Integer...) metodo(int...)
Por lo que concluyo que metodo(int ... a) == metodo(Integer ... a)
Ahora bien, dado que:
metodo(Integer[] a) == metodo(Integer... a) y
metodo(int ... a) == metodo(Integer ... a)
Asumo que metodo(Integer[] a) == metodo(int ... a), pero resulta que
este ejemplo compila y corre perfectamente.
public static void main(String...p)
{
metodo(1,2,3,4);
}
static void metodo(int ... a)
{
out.println("1");
}
static void metodo(Integer[] a)
{
out.println("2");
}
Es una tonteria de Java o estoy equivocado?
Saludos.
----- Forwarded Message ---- From: Hector de Gracia <admisecreto@...> To: SoloJava <SoloJava@...> Sent: Saturday, May 17, 2008 10:11:26 AM Subject: [SoloJava] CONSULTA
Buenos dias, me gustaria me puedan ayudar con algo simple, estoy haciendo un programa en java y el caso es el siguiente:
Tengo una tabla que tiene cuenta, puntos, programa, cada cuenta puede tener hasta 3 programas, como hago para restar por programa?, si yo totalizo el monto de los 3 programas?
Buenos dias, me gustaria me puedan ayudar con algo simple, estoy haciendo un
programa en java y el caso es el siguiente:
Tengo una tabla que tiene cuenta, puntos, programa, cada cuenta puede tener
hasta 3 programas, como hago para restar por programa?, si yo totalizo el monto
de los 3 programas?
Gracias
El Centro Nacional de Tecnologías de Información (CNTI), adscrito al Ministerio
del Poder Popular para las Telecomunicaciones y la Informática,
tiene el agrado de invitar a participar a las unidades productivas que presten servicios en el área de Sistemas de Información Geográfico (SIG)
a una actividad enmarcada en el Proyecto: Infraestructura de
Datos Geospaciales Venezolana (IDE/SIG). En la
actividad contaremos con la participación del equipo creador del proyecto español GVSIG
Fecha: 07 mayo de 2008
Hora: 8:30 am. a 5:30 pm. (almuerzo libre)
Lugar: Caracas
Nota: Favor Confirmar su asistencia. Cupos limitados.
¿Que es gvSIG? http://www.gvsig.gva.es/ gvSIG es una herramienta orientada al manejo de información geográfica. Se caracteriza por una interfaz amigable, siendo capaz de acceder a los formatos más usuales de forma ágil tanto ráster como vectoriales. Integra en una vista
datos tanto locales como remotos a través de un origen WMS, WCS o WFS.
Descripción técnica (lenguaje de desarrollo, librerías utilizadas...)
Propósito: Cliente avanzado GIS de consulta, edición y creación de planos.
Lenguaje de desarrollo:Java 100 % + algunas librerías externas para el acceso a formatos propietarios como ECW o MrSid.
Multiplataforma: Funciona en sistemas Windows, Linux, Mac… etc. (Siempre y cuando esté instalada la máquina virtual java adecuada).
Multilingüe. Soporta internacionalización de manera nativa, y es muy fácil crear nuevas traducciones del programa.
Mención aparte merecen las librerías utilizadas en el proyecto:
Geotools2 => Magnífico proyecto. Hemos aprovechado todo lo relativo a
proyecciones, y es probable que utilicemos más módulos.
JTS (Java Topology Suite).=>Sin ella, todo lo referente a análisis espacial, consultas avanzadas y creación de topología, sería imposible.
Log4java => Para que sepamos en todo momento qué está haciendo la aplicación y se cree un “log” o registro de los posibles fallos. Del proyecto Apache, un verdadero almacén de librerías útiles.
Batik => También del proyecto Apache. En el futuro, la emplearemos para trabajar con SVG. Por ahora, la empleamos para etiquetar polilíneas.
Castor=> Librería para manejar la persistencia de objetos. con ella se consigue guardar y recuperar los objetos del proyecto, y también la hemos empleado para realizar el cliente WMS, basándonos en los esquemas que suministra el Opengis Consortium.
Ermapper=> Librería para trabajar con ECW libre. Solo Windows, pero gratuita. Muy rápida en la visualización, y consume poca memoria. Posibilita trabajar
con ficheros raster enormes.
GDAL=> La misma librería de acceso a raster que utiliza MapServer. También libre. La usamos tanto para leer como para escribir, y nos apoyamos en ella en el acceso a WMS y WCS.
Lizardtech GeoDSDK => Librería cerrada para lectura de Mr SID.
También hemos reutilizado código de otros proyectos como JUMP (Java Unified Mapping Platform), MapServer, etc. Además, hemos explorado el diseño y el código de muchos otros proyectos, por ejemplo el de UDIG (User Friendly Desktop Gis), que transmite muy buenas vibraciones.
Y hemos portado (de manera incompleta) la librería DGNLib a Java nativo para visualizar ficheros .dgn (versión 7.0, la de MicroStation 95).
Y para terminar, mención aparte al entorno de desarrollo utilizado: ECLIPSE, un entorno de desarrollo que facilita sobremanera la tarea del desarrollador.