2009-11-06 14 views
5

Sono abituato a configurare l'applicazione Web in context.xml, inclusi i jdbc resorces ei parametri di configurazione dell'applicazione.Qual è l'alternativa glassfish a context.xml

Sotto glassfish, cosa è considerato il luogo standard in cui archiviare le informazioni di configurazione dell'applicazione?

Abbiamo usato per memorizzare nel file context.xml come segue:

<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"/> 

risposta

1

Attiva la risposta è che non c'è alternativa alla sezione di Tomcats context.xml.

Si scopre che l'elemento è una cosa specifica di tomcat in genere non supportata da altri server di app come Glassfish.

Per quanto posso dire, non sembra esserci un'alternativa semplice/ragionevole oltre alla configurazione manuale delle risorse del database tramite GUI o interfacce della riga di comando.

+1

Per quanto sfortunato, è proprio così che funziona. Un po 'come come al lavoro abbiamo un file orion-application.xml per configurare le cose su Oracle Application Server. – Powerlord

1

in web.xml della vostra applicazione, per le specifiche Java EE.

Ecco la descrizione di tomcat su context.xml.

è possibile configurare valori che saranno resi visibili al web applicazione come contesto servlet parametri di inizializzazione annidando elementi all'interno dell'elemento chiamata. Ad esempio, è possibile creare un parametro di inizializzazione in questo modo:

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

Ciò equivale all'inclusione del seguente elemento nel web Application Deployment descrittore (/WEB-INF/web.xml):

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

Funziona per i parametri, ma per quanto riguarda la configurazione dei pool di connessione del database? – corydoras

+0

I pool di connessione sono definiti utilizzando la GUI dell'amministratore. Ma se hai bisogno della tua correzione xml, è tutto in sun-web.xml. – alphazero

+1

Mettendo da parte il fatto che sono abbastanza offeso, tu pensi che mi piaccia l'XML. Il punto è che le connessioni al database non devono essere configurate manualmente ogni volta che si distribuisce un'applicazione. Con Tomcat è sufficiente configurare i dettagli di configurazione ed è possibile eseguire la distribuzione sul server senza dover girare con le interfacce GUI. Aggiungete a ciò la possibilità che gli utenti che giocano con l'interfaccia di amministrazione possano dimenticare di fare cose come attivare il supporto UTF-8 sul pool di connessioni JDBC e la sua ricetta per il disastro. – corydoras

2

Per tutti coloro che sono alla ricerca di un modo per impostare parametri di contesto in Glassfish - è possibile.

Mentre Glassfish non supporta un file context.xml, è comunque possibile impostare/sovrascrivere i parametri del contesto dell'app Web. C'è il comando secondario asadmin set-web-context-param per impostarli. I valori verranno archiviati nel tuo dominio.xml - non andranno persi durante la ridistribuzione dell'applicazione.

Sinossi (da collegamento documentazione di cui sopra):

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

Risorse come origini dati JDBC possono essere configurati con asadmin, troppo, oppure è possibile utilizzare l'interfaccia grafica web di pesci vetro. Tutte queste informazioni verranno archiviate nel file domain.xml.

+0

Penso che andranno persi se si annulla la distribuzione e quindi si distribuisce un'applicazione, anche se ... – vkraemer

+0

@vkraemer Sono d'accordo con te su questo ... –

+0

Grazie MichaelPaesold, stavo cercando di aggiungere il [context-param al dominio .xml] (https://docs.oracle.com/cd/E19226-01/820-7694/giuiv/index.html) manualmente ma non stavo capendo dove dovrei aggiungerlo. Questo comando lo fa automaticamente. Sarebbe più bello se potesse essere configurato sul web gui. @vkraemer Non è necessario annullare la distribuzione di un'applicazione per la distribuzione, possiamo ridistribuire direttamente o semplicemente disabilitarla per un po 'di tempo. Le configurazioni vengono perse solo se annulliamo la distribuzione, vengono conservate se si effettua il reimpiego utilizzando la funzionalità "redeploy" –