Librerias javascript que facilitan la creación de tablas con funcionalidad en el cliente.
- jquery
- jsExt
- yui
- Dojo
- prototype
Librerias javascript que facilitan la creación de tablas con funcionalidad en el cliente.
Recientemente he visto el siguiente error ejecutando una aplicación web sobre BEA Weblogic 9.2
weblogic.jdbc.extensions.PoolDisabledSQLException: weblogic.common.resourcepool.ResourceDisabledException: Pool jdbc/PoolXXX is disabled, cannot allocate resources to applications..
at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:242)
at weblogic.jdbc.pool.Driver.connect(Driver.java:161)
at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:647)
at weblogic.jdbc.jts.Driver.connect(Driver.java:137)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
El problema se deriva de que previamente se había producido otra excepción
weblogic.jdbc.extensions.ConnectionDeadSQLException: weblogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: Io exception: The Network Adapter could not establish the connection
at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:241)
at weblogic.jdbc.pool.Driver.connect(Driver.java:161)
at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:647)
at weblogic.jdbc.jts.Driver.connect(Driver.java:137)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
Al producirse esta excepción Weblogic deshabilita el pool y las siguientes peticiones de conexiones al pool muestran el error inicial Pool jdbc/PoolXXX is disabled.
Después de hacer diferentes pruebas y eliminar cualquier sospecha de que el problema procedía de la aplicación y después de haber probado diferentes configuraciones del Pool para intentar mitigar el problema, se solucionó con una actuación, no se cual, al firewall.
Instalar Windows Resource Kit Tools
http://www.petri.co.il/download_windows_2003_reskit_tools.htm
Instalar CruiseControl
http://cruisecontrol.sourceforge.net/
Crear el servicio
Ejecutar en la consola de windows
cd C:\Archivos de programa\Windows Resource Kits\Tools
instsrv.exe CruiseControlServer “C:\Archivos de programa\Windows Resource Kits\Tools\srvany.exe”
The service was successfuly added!
Configurar el servicio mediante regedit
Mi PC\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CruiseControlServer
Nota: $CCDIR$ es la ruta de instalación del CruiseControl
Editar cruisecontrol.bat
Descomentar la definición de CC_OPTS para configurar la memoria que puede utilizar el servidor.
Añadir el parámetro -Xrs para evitar que se pare al hacer logout
Añadir cd %CCDIR% justo antes de %EXEC% en una linea separada.
Arrancar el servicio
Ejecutar en la consola de windows
net start CruiseControlServer
Acceder al Dashboard
#Crear un nuevo projecto maven
mvn archetype:create -DgroupId=es.test.X -DartifactId=my-app.
#Crear la confgiuración de eclipse de un proyecto .project ,…
mvn eclipse:eclipse
#Si se trata de una aplicación web
mvn -Dwtpversion=2.0 eclipse:eclipse
# descargar dependencias
mvn dependency:resolve
# descargar código fuente
mvn dependency:sources
##parámetros
#OFFLINE
-o
#descargar source
-DdownloadSources=true
#descargar javadoc
-DdownloadJavadocs=true
Siempre se me olvida, ¿a tí también?
WebApplicationContextUtils.getWebApplicationContext(pageContext.getServletContext());
He partido de esta documentación que está muy bien
https://jaxb.dev.java.net/jaxb-maven2-plugin/
El primer problema que he tenido ha sido descargar el jar del plugin a pesar de definir el repositorio
<repository>
<id>java.net</id>
<name>java.net Maven Repository</name>
<url>https://maven-repository.dev.java.net/nonav/repository</url>
<layout>legacy</layout>
</repository>
He encontrado el jar en
https://maven-repository.dev.java.net/repository/com.sun.tools.xjc.maven2/maven-plugins/
Lo he descargado y después lo he instalado en mi respoitorio
mvn install:install-file -DgroupId=com.sun.tools.xjc.maven2 -DartifactId=maven-jaxb-plugin -Dversion=1.1 -Dpackaging=maven-plugin -Dfile=maven-jaxb-plugin-1.1.jar
Una vez hecho esto he configurado un poco el plugin, ya que para trabajar con dtds hace falta algún pequeño cambio sobre la documentación inicial
<plugin>
<groupId>com.sun.tools.xjc.maven2</groupId>
<artifactId>maven-jaxb-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<generatePackage>es.test.ejemplo.xml</generatePackage>
<includeSchemas>
<includeSchema>**/ejemplo.dtd</includeSchema>
</includeSchemas>
<excludeSchemas>
<excludeSchema>**/*.xml</excludeSchema>
</excludeSchemas>
<includeBindings>
<includeBinding>*.xjb</includeBinding>
</includeBindings>
<strict>true</strict>
<verbose>true</verbose>
<args>-dtd</args>
</configuration>
</plugin>
Los cambios necesarios sobre la documentación original están marcados en negrita.
Sólo se puede hacer la generación de un DTD y hay que pasar un argumento –dtd al generador para que funcione correctamente.
Sólo recordar que el dtd ha de estar en el directorio src\main\resources
Una vez hecho se han generado las clases correctamente en el directorio target\generated-sources\xjc
Para hacer que todo compile y se ejecute correctamente hay que añadir las siguientes dependencias :
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.0.5</version>
</dependency>
Y así hacer marshal y unmarshal se vuelve trivial
public String marshal(XMLRequest request) throws JAXBException, UnsupportedEncodingException {
JAXBContext context = JAXBContext.newInstance(XMLRequest.class
.getPackage().getName());
Marshaller m = context.createMarshaller();
ByteArrayOutputStream bo = new ByteArrayOutputStream();
m.marshal(request, bo) ;
return bo.toString(“UTF-8″);
}
public Fact24Request unmarshal(String xml) throws JAXBException {
JAXBContext context = JAXBContext.newInstance(XMLRequest.class
.getPackage().getName());
Unmarshaller um = context.createUnmarshaller();
Fact24Request request = (XMLRequest) um.unmarshal(new StringReader(xml));
return request;
}
Los XML comienzan con:
<?xml version=“1.0″ encoding=“ISO-8859-15″?>
Sin espacios al principio del archivo. Esto te permite usar tildes, diéresis y el símbolo del € en tus XML sin preocuparte por transformarlos a UTF-8
Cuando necesitas poner espacios, cambios de linea, símbolos < > & , CDATA es lo que necesitas.
Formato:
<![CDATA[ Aquí puedes poner lo que quieras. ]]>
Para cualquier tipo de URI el formato es:
protocol://usuario:clave@server:port/path
Ejemplos
http://user:clave@xxx.com/paginaSegura
ftp://user:clave@xxx.com/directorioSeguro
http://user:clave@xxx.com/paginaSegura
Adhoc es el nombre del sistema de creación de informes directamente por el usuario final en cuatro pasos.
Modificación de la presentación:
El primer punto se cambiar los css $PENTAHO_HOME$/adhoc/styles:
Las imágenes está en en $PENTAHO_HOME$/adhoc/images
El html principal es el siguiente waqr.html. Sobre éste los js modifican en tiempo de ejecución su contenido, mostrando y ocultando DIVs o cambiando el contenido de los DIVs.
Los js, están agrupados de la siguiente manera contraoller, modelo y ui. Modelo-vista- controlador y un paquete extra (common) donde hay utilidades auxiliares como : leer xml, tratar cadenas, mostrar por pantalla,….
Gran parte del texto que aparece se puede configurar en el archivo message_strings.js del directorio en $PENTAHO_HOME$/adhoc/js/ui/messages/nls/
Recomendaciones:
Si sólo se quiere cambiar un poco la presentación sólo es necesario modificar los css, images y message_strings.js.
Modificación de la presentación de Pentaho:
El primer punto se cambiar los css.
También se puede modificar el estilo el menú
Para modificar el contenido del menú se necesario modificar los archivos:
Para añadir un idioma hay que ir a
Como última opción se puede modificar la plantilla general %PENTAHO_HOME%/jsp/index.jsp y otros archivos para la administración de pentaho.