2012-08-16 7 views
5

Ho un tale application.xml.Associare più root di contesto a un web-uri in application.xml

<module> 
    <web> 
     <web-uri>services-inboxService.war</web-uri> 
     <context-root>/services/inboxService</context-root> 
    </web> 
    </module> 

Vorrei mappare diverso contesto di base per un web-uri. Ma ci sono dei vincoli e ogni modulodovrebbero contenere solo una web sezione e ogni web - una sola sezione context-root. C'è qualche modo tranne che copiare questo file di guerra chiamato diversamente?

risposta

5

Yegoshin Maxim- credo è necessario essere chiari sul concetto URI in un'applicazione Web basata su Java EE:

<hostname:port/context-root/resource-path?parameters> 

Ora, se qualcuno vuole usare una combinazione hostname + porta diversa per essere servito dalla stessa applicazioni installate, dovrebbero utilizzare il concetto di hosting virtuale supportato principalmente da server di app come Tomcat, WebSphere.

Se qualcuno vuole utilizzare una diversa risorsa-path per mappare la stessa risorsa in un'applicazione web, è fatto configurando un url-pattern in web.xml

Ora, se qualcuno vuole usare un diverso context-root per una singola installazione di un'applicazione, non è possibile. Anche se pensi dal punto di vista del classloader. Un contesto porta alla creazione di un classloader di contesto che è figlio del classloader del server delle applicazioni. Non possiamo avere più di un classloader di contesto per una app Web, altrimenti è impossibile risolvere i riferimenti a risorse/classi. Pertanto, l'unica soluzione consiste nell'avere più istanze di un'app in esecuzione in più root di contesto.

Problemi correlati