You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Sathija Pavuluri (JIRA)" <ji...@apache.org> on 2007/04/15 19:19:15 UTC

[jira] Created: (AXIS2-2528) Tomcat deployment without unpacking WAR

Tomcat deployment without unpacking WAR
---------------------------------------

                 Key: AXIS2-2528
                 URL: https://issues.apache.org/jira/browse/AXIS2-2528
             Project: Axis 2.0 (Axis2)
          Issue Type: Improvement
          Components: deployment
    Affects Versions: 1.1.1
         Environment: Tomcat 5 , jdk 4 and above on linux.
            Reporter: Sathija Pavuluri



Deployment works fine when I drop my war file to /webapps and server.xml setting is:

<Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

This unpacks the war file and everything works fine.

However, when I drop my war file to /webapps and change the unpackWARs property  to

<Host name="localhost" appBase="webapps"
       unpackWARs="false" autoDeploy="false"
       xmlValidation="false" xmlNamespaceAware="false">

I get the axis startup error described below.
********************************************************************************
SEVERE: Servlet /test-app threw load() exception
> > org.apache.axis2.AxisFault: The system is attempting to engage a module
> > that is not available: addressing
> > at
> > org.apache.axis2.engine.AxisConfiguration.engageModule(AxisConfiguration.java:394) \
> >  at
> > org.apache.axis2.deployment.DeploymentEngine.engageModules(DeploymentEngine.java:6 \
> > 63) at
> > org.apache.axis2.deployment.WarBasedAxisConfigurator.engageGlobalModules(WarBasedA \
> > xisConfigurator.java:269) at
> > org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(Co \
> > nfigurationContextFactory.java:69) at
> > org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:385 \
> > ) at
> > org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:335)
> > at
> > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
> > at
> > org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
> > at
> > org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951)
> > at
> > org.apache.catalina.core.StandardContext.start(StandardContext.java:4225)
************************************************************************************************

When tomcat's unpackWARs="false" and you deploy the .war file in tomcat's /webapps this can be reproduced.

I have been reading up on this issue and found a thread on tomcat user list that said  this about running apps without unpacking the war:
****************************************************************************
One thing to watch out for when running an app directly from a .war file is that if the application is trying to do any File IO where it
tries to load resources existing within the WAR structure, it won't work if the .war is not expanded into a directory.  I've noticed
various frameworks that ignore this and continue to use File IO. These apps *will* break.  See if you are getting any stack traces in
Tomcat's log files. The webapp itself has to be written so that it can work inside a WAR.
Most commonly, that means using ServletContext.getResource() or ServletContext.getResourceAsStream() instead of file i/o in order to read
webapp resources.
****************************************************************************

I suspect axis uses file I/O as opposed to ServletContext to load resource files.

Most production deployments do not unpack WAR files, so having axis use the Servlet Context can definitely make things more elegant.

Thanks.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-2528) Tomcat deployment without unpacking WAR

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-2528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12502196 ] 

Davanum Srinivas commented on AXIS2-2528:
-----------------------------------------

looks like it's fixed now.

> Tomcat deployment without unpacking WAR
> ---------------------------------------
>
>                 Key: AXIS2-2528
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2528
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: deployment
>    Affects Versions: 1.1.1
>         Environment: Tomcat 5 , jdk 4 and above on linux.
>            Reporter: Sathija Pavuluri
>
> Deployment works fine when I drop my war file to /webapps and server.xml setting is:
> <Host name="localhost" appBase="webapps"
>        unpackWARs="true" autoDeploy="true"
>        xmlValidation="false" xmlNamespaceAware="false">
> This unpacks the war file and everything works fine.
> However, when I drop my war file to /webapps and change the unpackWARs property  to
> <Host name="localhost" appBase="webapps"
>        unpackWARs="false" autoDeploy="false"
>        xmlValidation="false" xmlNamespaceAware="false">
> I get the axis startup error described below.
> ********************************************************************************
> SEVERE: Servlet /test-app threw load() exception
> > > org.apache.axis2.AxisFault: The system is attempting to engage a module
> > > that is not available: addressing
> > > at
> > > org.apache.axis2.engine.AxisConfiguration.engageModule(AxisConfiguration.java:394) \
> > >  at
> > > org.apache.axis2.deployment.DeploymentEngine.engageModules(DeploymentEngine.java:6 \
> > > 63) at
> > > org.apache.axis2.deployment.WarBasedAxisConfigurator.engageGlobalModules(WarBasedA \
> > > xisConfigurator.java:269) at
> > > org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(Co \
> > > nfigurationContextFactory.java:69) at
> > > org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:385 \
> > > ) at
> > > org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:335)
> > > at
> > > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
> > > at
> > > org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
> > > at
> > > org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951)
> > > at
> > > org.apache.catalina.core.StandardContext.start(StandardContext.java:4225)
> ************************************************************************************************
> When tomcat's unpackWARs="false" and you deploy the .war file in tomcat's /webapps this can be reproduced.
> I have been reading up on this issue and found a thread on tomcat user list that said  this about running apps without unpacking the war:
> ****************************************************************************
> One thing to watch out for when running an app directly from a .war file is that if the application is trying to do any File IO where it
> tries to load resources existing within the WAR structure, it won't work if the .war is not expanded into a directory.  I've noticed
> various frameworks that ignore this and continue to use File IO. These apps *will* break.  See if you are getting any stack traces in
> Tomcat's log files. The webapp itself has to be written so that it can work inside a WAR.
> Most commonly, that means using ServletContext.getResource() or ServletContext.getResourceAsStream() instead of file i/o in order to read
> webapp resources.
> ****************************************************************************
> I suspect axis uses file I/O as opposed to ServletContext to load resource files.
> Most production deployments do not unpack WAR files, so having axis use the Servlet Context can definitely make things more elegant.
> Thanks.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-2528) Tomcat deployment without unpacking WAR

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-2528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12490408 ] 

Davanum Srinivas commented on AXIS2-2528:
-----------------------------------------

Please try latest nightly or RC. It's working now.

thanks,
dims

> Tomcat deployment without unpacking WAR
> ---------------------------------------
>
>                 Key: AXIS2-2528
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2528
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: deployment
>    Affects Versions: 1.1.1
>         Environment: Tomcat 5 , jdk 4 and above on linux.
>            Reporter: Sathija Pavuluri
>
> Deployment works fine when I drop my war file to /webapps and server.xml setting is:
> <Host name="localhost" appBase="webapps"
>        unpackWARs="true" autoDeploy="true"
>        xmlValidation="false" xmlNamespaceAware="false">
> This unpacks the war file and everything works fine.
> However, when I drop my war file to /webapps and change the unpackWARs property  to
> <Host name="localhost" appBase="webapps"
>        unpackWARs="false" autoDeploy="false"
>        xmlValidation="false" xmlNamespaceAware="false">
> I get the axis startup error described below.
> ********************************************************************************
> SEVERE: Servlet /test-app threw load() exception
> > > org.apache.axis2.AxisFault: The system is attempting to engage a module
> > > that is not available: addressing
> > > at
> > > org.apache.axis2.engine.AxisConfiguration.engageModule(AxisConfiguration.java:394) \
> > >  at
> > > org.apache.axis2.deployment.DeploymentEngine.engageModules(DeploymentEngine.java:6 \
> > > 63) at
> > > org.apache.axis2.deployment.WarBasedAxisConfigurator.engageGlobalModules(WarBasedA \
> > > xisConfigurator.java:269) at
> > > org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(Co \
> > > nfigurationContextFactory.java:69) at
> > > org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:385 \
> > > ) at
> > > org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:335)
> > > at
> > > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
> > > at
> > > org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
> > > at
> > > org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951)
> > > at
> > > org.apache.catalina.core.StandardContext.start(StandardContext.java:4225)
> ************************************************************************************************
> When tomcat's unpackWARs="false" and you deploy the .war file in tomcat's /webapps this can be reproduced.
> I have been reading up on this issue and found a thread on tomcat user list that said  this about running apps without unpacking the war:
> ****************************************************************************
> One thing to watch out for when running an app directly from a .war file is that if the application is trying to do any File IO where it
> tries to load resources existing within the WAR structure, it won't work if the .war is not expanded into a directory.  I've noticed
> various frameworks that ignore this and continue to use File IO. These apps *will* break.  See if you are getting any stack traces in
> Tomcat's log files. The webapp itself has to be written so that it can work inside a WAR.
> Most commonly, that means using ServletContext.getResource() or ServletContext.getResourceAsStream() instead of file i/o in order to read
> webapp resources.
> ****************************************************************************
> I suspect axis uses file I/O as opposed to ServletContext to load resource files.
> Most production deployments do not unpack WAR files, so having axis use the Servlet Context can definitely make things more elegant.
> Thanks.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Resolved: (AXIS2-2528) Tomcat deployment without unpacking WAR

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-2528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas resolved AXIS2-2528.
-------------------------------------

    Resolution: Invalid

> Tomcat deployment without unpacking WAR
> ---------------------------------------
>
>                 Key: AXIS2-2528
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2528
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: deployment
>    Affects Versions: 1.1.1
>         Environment: Tomcat 5 , jdk 4 and above on linux.
>            Reporter: Sathija Pavuluri
>
> Deployment works fine when I drop my war file to /webapps and server.xml setting is:
> <Host name="localhost" appBase="webapps"
>        unpackWARs="true" autoDeploy="true"
>        xmlValidation="false" xmlNamespaceAware="false">
> This unpacks the war file and everything works fine.
> However, when I drop my war file to /webapps and change the unpackWARs property  to
> <Host name="localhost" appBase="webapps"
>        unpackWARs="false" autoDeploy="false"
>        xmlValidation="false" xmlNamespaceAware="false">
> I get the axis startup error described below.
> ********************************************************************************
> SEVERE: Servlet /test-app threw load() exception
> > > org.apache.axis2.AxisFault: The system is attempting to engage a module
> > > that is not available: addressing
> > > at
> > > org.apache.axis2.engine.AxisConfiguration.engageModule(AxisConfiguration.java:394) \
> > >  at
> > > org.apache.axis2.deployment.DeploymentEngine.engageModules(DeploymentEngine.java:6 \
> > > 63) at
> > > org.apache.axis2.deployment.WarBasedAxisConfigurator.engageGlobalModules(WarBasedA \
> > > xisConfigurator.java:269) at
> > > org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(Co \
> > > nfigurationContextFactory.java:69) at
> > > org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:385 \
> > > ) at
> > > org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:335)
> > > at
> > > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
> > > at
> > > org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
> > > at
> > > org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951)
> > > at
> > > org.apache.catalina.core.StandardContext.start(StandardContext.java:4225)
> ************************************************************************************************
> When tomcat's unpackWARs="false" and you deploy the .war file in tomcat's /webapps this can be reproduced.
> I have been reading up on this issue and found a thread on tomcat user list that said  this about running apps without unpacking the war:
> ****************************************************************************
> One thing to watch out for when running an app directly from a .war file is that if the application is trying to do any File IO where it
> tries to load resources existing within the WAR structure, it won't work if the .war is not expanded into a directory.  I've noticed
> various frameworks that ignore this and continue to use File IO. These apps *will* break.  See if you are getting any stack traces in
> Tomcat's log files. The webapp itself has to be written so that it can work inside a WAR.
> Most commonly, that means using ServletContext.getResource() or ServletContext.getResourceAsStream() instead of file i/o in order to read
> webapp resources.
> ****************************************************************************
> I suspect axis uses file I/O as opposed to ServletContext to load resource files.
> Most production deployments do not unpack WAR files, so having axis use the Servlet Context can definitely make things more elegant.
> Thanks.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org