You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Jonathan Gallimore (JIRA)" <ji...@apache.org> on 2009/01/31 20:29:59 UTC
[jira] Updated: (OPENEJB-997) context.xml is ignored
[ https://issues.apache.org/jira/browse/OPENEJB-997?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Gallimore updated OPENEJB-997:
---------------------------------------
Attachment: tomcat.diff
Potential patch for this issue
> context.xml is ignored
> ----------------------
>
> Key: OPENEJB-997
> URL: https://issues.apache.org/jira/browse/OPENEJB-997
> Project: OpenEJB
> Issue Type: Bug
> Reporter: Jonathan Gallimore
> Assignee: Jonathan Gallimore
> Attachments: tomcat.diff
>
>
> Hi,
> I have a similar problem with TomcatWebAppBuilder which is related to
> user-defined contexts:
> In the method
> public void deployWebApps(AppInfo appInfo, ClassLoader classLoader);
> the standardContext is initialized as follows:
> if (getContextInfo(webApp) == null) {
> StandardContext standardContext = new StandardContext();
> standardContext.addLifecycleListener(new ContextConfig());
> standardContext.setPath("/" + webApp.contextRoot);
> standardContext.setDocBase(webApp.codebase);
> standardContext.setParentClassLoader(classLoader);
> standardContext.setDelegate(true);
> The problem in my opinion is the line
> standardContext.addLifecycleListener(new ContextConfig());
> i.e. the standardContext is initialized with an empty ContextConfig. If a
> context.xml is defined for a WebApp (located in one of the standard places,
> conf/Catalina/<host>/, META-INF/context.xml, ...) it is ignored. This is
> very undesirable if a context.xml defines Resources, ...
> With the following hack the ContextConfig is initialized with
> META-INF/context.xml:
> StandardContext standardContext = new StandardContext();
> standardContext.setConfigFile(
> webApp.codebase + "/META-INF/context.xml"
> );
> WebAppContextConfig.initContext(standardContext);
> standardContext.setPath("/" + webApp.contextRoot);
> standardContext.setDocBase(webApp.codebase);
> standardContext.setParentClassLoader(classLoader);
> standardContext.setDelegate(true);
> and the helper class
> private static class WebAppContextConfig extends ContextConfig {
> private void init(
> StandardContext standardContext
> ) {
> standardContext.addLifecycleListener(this);
> this.context = standardContext;
> boolean tmpOverride = standardContext.getOverride();
> standardContext.setOverride(true);
> this.contextConfig();
> standardContext.setOverride(tmpOverride);
> }
>
> public static void initContext(
> StandardContext standardContext
> ) {
> WebAppContextConfig config = new WebAppContextConfig();
> config.init(standardContext);
> }
>
> }
> Of course this is far from a clean solution. Any comments?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.