2009-11-06 16 views
5

Estoy acostumbrado a configurar la aplicación web en context.xml, incluidos los recursos jdbc y los parámetros de configuración de la aplicación.¿Cuál es la alternativa glassfish a context.xml

En glassfish, ¿cuál es el lugar estándar para almacenar la información de configuración de la aplicación?

utilizamos para guardar en el archivo context.xml de la siguiente manera:

<Resource 
url="jdbc:mysql://localhost:3306/db?useUnicode=true&amp;characterEncoding=utf8" 
username="username" 
name="jdbc/db" 
password="secret" 
auth="Container" 
driverClassName="com.mysql.jdbc.Driver" 
maxActive="5" maxIdle="2" maxWait="10000" 
removeAbandoned="true" 
type="javax.sql.DataSource" 
/> 

<Parameter name="application.url" value="http://localhost:8080/News/" override="false"/> 
<Parameter name="smtp.server" value="smtp.example.com" override="false"/> 
<Parameter name="smtp.port" value="25" override="false"/> 
<Parameter name="smtp.from.address" value="[email protected]" override="false"/> 
<Parameter name="smtp.from.name" value="Site administrator" override="false"/> 
<Parameter name="list.name" value="DEV" override="false"/> 
<Parameter name="temporary.folder" value="/tmp" override="false"/> 
<Parameter name="authentication.type" value="LDAP" override="false"/> 

Respuesta

1

Resulta que la respuesta es que no hay alternativa a la sección de tomcats context.xml.

Resulta que el elemento es algo específico de Tomcat generalmente no compatible con otros servidores de aplicaciones como glassfish.

Por lo que puedo decir, parece que no existe una alternativa simple/sensata además de configurar manualmente los recursos de la base de datos a través de la GUI o las interfaces de línea de comandos.

+1

Por desafortunado que sea, así es como funciona. Más o menos como en el trabajo tenemos un archivo orion-application.xml para configurar cosas en Oracle Application Server. – Powerlord

1

En web.xml de la aplicación, según especificaciones de Java EE.

Aquí está la propaganda de Tomcat sobre context.xml.

puede configurar valores que se hace visible a la aplicación web como contexto servlet parámetros de inicialización anidando elementos dentro de este elemento llamado. Por ejemplo, puede crear un parámetro de inicialización así:

<Context ...> ... 
<Parameter name="companyName" value="My Company, 
    Incorporated" override="false"/> 
</Context> 

Esto es equivalente a la inclusión del elemento siguiente en el aplicación web descriptor de despliegue (/WEB-INF/web.xml):

<context-param> 
    <param-name>companyName</param-name> 
    <param-value>My Company, Incorporated</param-value> 
</context-param> 
+0

Esto funciona para los parámetros, pero ¿qué tal para configurar grupos de conexiones de bases de datos? – corydoras

+0

Los grupos de conexiones se definen mediante la interfaz de usuario de administración. Pero si necesita su corrección xml, todo está en sun-web.xml. – alphazero

+1

Dejando a un lado el hecho de que estoy bastante ofendido, crees que me gusta XML. El punto es que las conexiones de la base de datos no deberían tener que configurarse manualmente cada vez que implementa una aplicación. Con Tomcat solo configura los detalles de la configuración y puede implementar en el servidor sin tener que meterse con las interfaces GUI. A esto se añade la posibilidad de que los usuarios que juegan con la interfaz de administrador olviden hacer cosas como activar el soporte UTF-8 en el conjunto de conexiones JDBC y es una receta para el desastre. – corydoras

2

Para todos los que están buscando una manera de establecer parámetros de contexto en Glassfish - es posible.

Aunque Glassfish no es compatible con un archivo context.xml, puede establecer/anular los parámetros de contexto de la aplicación web. Existe el subcomando Asadmin set-web-context-param para configurar estos. Los valores se almacenarán en su domain.xml - no se perderá en la redistribución de la aplicación.

Sinopsis (de enlace de documentación arriba):

set-web-context-param [--help] --name=context-param-name 
    {--value=value|--ignoredescriptoritem={false|true}} 
    [--description=description] application-name[/module] 

recursos tales como fuentes de datos JDBC se pueden configurar con asadmin, también, o puede utilizar la GUI de la tela de GlassFish. Toda esa información se almacenará en el archivo domain.xml.

+0

Creo que se perderán si se despliega y luego despliega una aplicación, aunque ... – vkraemer

+0

@ vkraemer Estoy de acuerdo con usted en eso ... –

+0

Gracias MichaelPaesold, estaba tratando de agregar el [contexto-param al dominio .xml] (https://docs.oracle.com/cd/E19226-01/820-7694/giuiv/index.html) manualmente pero no entendía dónde debería agregarlo. Este comando hace esto automáticamente. Sería más agradable si se pudiera configurar en la interfaz web. @vkraemer No hay necesidad real de anular el despliegue de una aplicación para implementar nuevamente, podemos volver a implementarla directamente o simplemente desactivarla por un tiempo. Las configuraciones solo se pierden si no implementamos, se mantiene si volvemos a implementar usando la funcionalidad de "redespliegue" –

Cuestiones relacionadas