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 "Jason Sweeney (JIRA)" <ax...@ws.apache.org> on 2005/08/23 16:53:15 UTC

[jira] Created: (AXIS-2190) Configuration file location process different for client and server files

Configuration file location process different for client and server files
-------------------------------------------------------------------------

         Key: AXIS-2190
         URL: http://issues.apache.org/jira/browse/AXIS-2190
     Project: Apache Axis
        Type: Bug
  Components: Basic Architecture  
    Versions: 1.2.1    
 Environment: Not necessary for the issue
    Reporter: Jason Sweeney


When using the Axis client component within a web application, the client-config.xml file is usually placed in the same location as the server-config.xml file (if a server is also used).  As a result, Axis should follow the same process to locate the client configuration file as for the server file (in particular, check the WEB-INF folder of the web application).

Patch to correct the problem (basically making the server configuration file function generic):

File: org\apache\axis\configuration\EngineConfigurationFactoryServlet.java

Replace lines 93 to 120 (getServerEngineConfig() and start of getServerEngineConfig(ServletConfig cfg)) by this code

------------------------------------------------------------------------------------------------------------------
    /**
     * Get a default server engine configuration.
     *
     * @return a server EngineConfiguration
     */
    public EngineConfiguration getServerEngineConfig() {
        return getServletEngineConfig(cfg, OPTION_SERVER_CONFIG_FILE, SERVER_CONFIG_FILE);
    }

    /**
     * Get a default client engine configuration.
     *
     * @return a client EngineConfiguration
     */
    public EngineConfiguration getClientEngineConfig() {
        return getServletEngineConfig(cfg, OPTION_CLIENT_CONFIG_FILE, CLIENT_CONFIG_FILE);
    }

    /**
     * Get a default engine configuration in a servlet environment.
     *
     * @param cfg a ServletConfig
     * @param pOptionName configuration file name option
     * @param pConfigFile configuration file name
     * @return an EngineConfiguration
     */
    private static 
            EngineConfiguration getServerEngineConfig(
                ServletConfig cfg, String pOptionName, String pConfigFile) 
        {
        
        ServletContext ctx = cfg.getServletContext();
        
        // Respect the system property setting for a different config file
        String configFile = cfg.getInitParameter(pOptionName);
        if (configFile == null)
                configFile = 
                        AxisProperties.getProperty(pOptionName);
        if (configFile == null) {
            configFile = pConfigFile;
        }
------------------------------------------------------------------------------------------------------------------

Replace lines 186 to 188 (at the end of getServerEngineConfig(ServletConfig cfg)) by this code

------------------------------------------------------------------------------------------------------------------
                InputStream is = 
                        ClassUtils.getResourceAsStream(AxisServer.class,
                                                       pConfigFile);
------------------------------------------------------------------------------------------------------------------


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (AXIS-2190) Configuration file location process different for client and server files

Posted by "Davanum Srinivas (JIRA)" <ax...@ws.apache.org>.
    [ http://issues.apache.org/jira/browse/AXIS-2190?page=comments#action_12319724 ] 

Davanum Srinivas commented on AXIS-2190:
----------------------------------------

Please submit a "cvs diff -u" against latest CVS.

thanks,
dims

> Configuration file location process different for client and server files
> -------------------------------------------------------------------------
>
>          Key: AXIS-2190
>          URL: http://issues.apache.org/jira/browse/AXIS-2190
>      Project: Apache Axis
>         Type: Bug
>   Components: Basic Architecture
>     Versions: 1.2.1
>  Environment: Not necessary for the issue
>     Reporter: Jason Sweeney

>
> When using the Axis client component within a web application, the client-config.xml file is usually placed in the same location as the server-config.xml file (if a server is also used).  As a result, Axis should follow the same process to locate the client configuration file as for the server file (in particular, check the WEB-INF folder of the web application).
> Patch to correct the problem (basically making the server configuration file function generic):
> File: org\apache\axis\configuration\EngineConfigurationFactoryServlet.java
> Replace lines 93 to 120 (getServerEngineConfig() and start of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>     /**
>      * Get a default server engine configuration.
>      *
>      * @return a server EngineConfiguration
>      */
>     public EngineConfiguration getServerEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_SERVER_CONFIG_FILE, SERVER_CONFIG_FILE);
>     }
>     /**
>      * Get a default client engine configuration.
>      *
>      * @return a client EngineConfiguration
>      */
>     public EngineConfiguration getClientEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_CLIENT_CONFIG_FILE, CLIENT_CONFIG_FILE);
>     }
>     /**
>      * Get a default engine configuration in a servlet environment.
>      *
>      * @param cfg a ServletConfig
>      * @param pOptionName configuration file name option
>      * @param pConfigFile configuration file name
>      * @return an EngineConfiguration
>      */
>     private static 
>             EngineConfiguration getServerEngineConfig(
>                 ServletConfig cfg, String pOptionName, String pConfigFile) 
>         {
>         
>         ServletContext ctx = cfg.getServletContext();
>         
>         // Respect the system property setting for a different config file
>         String configFile = cfg.getInitParameter(pOptionName);
>         if (configFile == null)
>                 configFile = 
>                         AxisProperties.getProperty(pOptionName);
>         if (configFile == null) {
>             configFile = pConfigFile;
>         }
> ------------------------------------------------------------------------------------------------------------------
> Replace lines 186 to 188 (at the end of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>                 InputStream is = 
>                         ClassUtils.getResourceAsStream(AxisServer.class,
>                                                        pConfigFile);
> ------------------------------------------------------------------------------------------------------------------

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Closed: (AXIS-2190) Configuration file location process different for client and server files

Posted by "Tom Jordahl (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXIS-2190?page=all ]
     
Tom Jordahl closed AXIS-2190:
-----------------------------

    Resolution: Invalid

Closing per Jasons comment.

> Configuration file location process different for client and server files
> -------------------------------------------------------------------------
>
>          Key: AXIS-2190
>          URL: http://issues.apache.org/jira/browse/AXIS-2190
>      Project: Apache Axis
>         Type: Bug
>   Components: Basic Architecture
>     Versions: 1.2.1
>  Environment: Not necessary for the issue
>     Reporter: Jason Sweeney

>
> When using the Axis client component within a web application, the client-config.xml file is usually placed in the same location as the server-config.xml file (if a server is also used).  As a result, Axis should follow the same process to locate the client configuration file as for the server file (in particular, check the WEB-INF folder of the web application).
> Patch to correct the problem (basically making the server configuration file function generic):
> File: org\apache\axis\configuration\EngineConfigurationFactoryServlet.java
> Replace lines 93 to 120 (getServerEngineConfig() and start of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>     /**
>      * Get a default server engine configuration.
>      *
>      * @return a server EngineConfiguration
>      */
>     public EngineConfiguration getServerEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_SERVER_CONFIG_FILE, SERVER_CONFIG_FILE);
>     }
>     /**
>      * Get a default client engine configuration.
>      *
>      * @return a client EngineConfiguration
>      */
>     public EngineConfiguration getClientEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_CLIENT_CONFIG_FILE, CLIENT_CONFIG_FILE);
>     }
>     /**
>      * Get a default engine configuration in a servlet environment.
>      *
>      * @param cfg a ServletConfig
>      * @param pOptionName configuration file name option
>      * @param pConfigFile configuration file name
>      * @return an EngineConfiguration
>      */
>     private static 
>             EngineConfiguration getServerEngineConfig(
>                 ServletConfig cfg, String pOptionName, String pConfigFile) 
>         {
>         
>         ServletContext ctx = cfg.getServletContext();
>         
>         // Respect the system property setting for a different config file
>         String configFile = cfg.getInitParameter(pOptionName);
>         if (configFile == null)
>                 configFile = 
>                         AxisProperties.getProperty(pOptionName);
>         if (configFile == null) {
>             configFile = pConfigFile;
>         }
> ------------------------------------------------------------------------------------------------------------------
> Replace lines 186 to 188 (at the end of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>                 InputStream is = 
>                         ClassUtils.getResourceAsStream(AxisServer.class,
>                                                        pConfigFile);
> ------------------------------------------------------------------------------------------------------------------

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (AXIS-2190) Configuration file location process different for client and server files

Posted by "Jason Sweeney (JIRA)" <ax...@ws.apache.org>.
    [ http://issues.apache.org/jira/browse/AXIS-2190?page=comments#action_12319740 ] 

Jason Sweeney commented on AXIS-2190:
-------------------------------------

Hi, there were three types of CVS diff available from the plug-in in Eclipse: Unified, Context and Standard.  I picked the default one (Unified).  If you need another one, its no problem to regenerate the file.

Index: EngineConfigurationFactoryServlet.java
===================================================================
RCS file: /home/cvspublic/ws-axis/java/src/org/apache/axis/configuration/EngineConfigurationFactoryServlet.java,v
retrieving revision 1.25
diff -u -r1.25 EngineConfigurationFactoryServlet.java
--- EngineConfigurationFactoryServlet.java	2 Feb 2005 13:39:08 -0000	1.25
+++ EngineConfigurationFactoryServlet.java	23 Aug 2005 16:25:35 -0000
@@ -92,31 +92,50 @@
 
     /**
      * Get a default server engine configuration.
+     * Delegate the override implementation to a generic process
+     * ref. http://issues.apache.org/jira/browse/AXIS-2190
      *
      * @return a server EngineConfiguration
      */
     public EngineConfiguration getServerEngineConfig() {
-        return getServerEngineConfig(cfg);
+        return getServletEngineConfig(cfg, OPTION_SERVER_CONFIG_FILE, SERVER_CONFIG_FILE);
     }
 
     /**
-     * Get a default server engine configuration in a servlet environment.
+     * Get a default client engine configuration.
+     * Override the default implementation for the client configurations
+     * ref. http://issues.apache.org/jira/browse/AXIS-2190
      *
-     * @param ctx a ServletContext
-     * @return a server EngineConfiguration
+     * @return a client EngineConfiguration
+     */
+    public EngineConfiguration getClientEngineConfig() {
+        return getServletEngineConfig(cfg, OPTION_CLIENT_CONFIG_FILE, CLIENT_CONFIG_FILE);
+    }
+
+    /**
+     * Get a default engine configuration in a servlet environment.
+     * Make this function generic for both the server and client configurations
+     * ref. http://issues.apache.org/jira/browse/AXIS-2190
+     *
+     * @param cfg a ServletConfig
+     * @param pOptionName configuration file name option
+     * @param pConfigFile configuration file name
+     * @return an EngineConfiguration
      */
     private static 
-            EngineConfiguration getServerEngineConfig(ServletConfig cfg) {
+            EngineConfiguration getServletEngineConfig(
+                ServletConfig cfg, String pOptionName, String pConfigFile) 
+        {
         
         ServletContext ctx = cfg.getServletContext();
         
         // Respect the system property setting for a different config file
-        String configFile = cfg.getInitParameter(OPTION_SERVER_CONFIG_FILE);
+        String configFile = cfg.getInitParameter(pOptionName);
         if (configFile == null)
                 configFile = 
-                        AxisProperties.getProperty(OPTION_SERVER_CONFIG_FILE);
+                        AxisProperties.getProperty(pOptionName);
         if (configFile == null) {
-            configFile = SERVER_CONFIG_FILE;
+            configFile = pConfigFile;
         }
         
         /**
@@ -185,7 +204,7 @@
             try {
                 InputStream is = 
                         ClassUtils.getResourceAsStream(AxisServer.class,
-                                                       SERVER_CONFIG_FILE);
+                                                       pConfigFile);
                 config = new FileProvider(is);
             } catch (Exception e) {
                 log.error(Messages.getMessage("servletEngineWebInfError02"), e);


> Configuration file location process different for client and server files
> -------------------------------------------------------------------------
>
>          Key: AXIS-2190
>          URL: http://issues.apache.org/jira/browse/AXIS-2190
>      Project: Apache Axis
>         Type: Bug
>   Components: Basic Architecture
>     Versions: 1.2.1
>  Environment: Not necessary for the issue
>     Reporter: Jason Sweeney

>
> When using the Axis client component within a web application, the client-config.xml file is usually placed in the same location as the server-config.xml file (if a server is also used).  As a result, Axis should follow the same process to locate the client configuration file as for the server file (in particular, check the WEB-INF folder of the web application).
> Patch to correct the problem (basically making the server configuration file function generic):
> File: org\apache\axis\configuration\EngineConfigurationFactoryServlet.java
> Replace lines 93 to 120 (getServerEngineConfig() and start of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>     /**
>      * Get a default server engine configuration.
>      *
>      * @return a server EngineConfiguration
>      */
>     public EngineConfiguration getServerEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_SERVER_CONFIG_FILE, SERVER_CONFIG_FILE);
>     }
>     /**
>      * Get a default client engine configuration.
>      *
>      * @return a client EngineConfiguration
>      */
>     public EngineConfiguration getClientEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_CLIENT_CONFIG_FILE, CLIENT_CONFIG_FILE);
>     }
>     /**
>      * Get a default engine configuration in a servlet environment.
>      *
>      * @param cfg a ServletConfig
>      * @param pOptionName configuration file name option
>      * @param pConfigFile configuration file name
>      * @return an EngineConfiguration
>      */
>     private static 
>             EngineConfiguration getServerEngineConfig(
>                 ServletConfig cfg, String pOptionName, String pConfigFile) 
>         {
>         
>         ServletContext ctx = cfg.getServletContext();
>         
>         // Respect the system property setting for a different config file
>         String configFile = cfg.getInitParameter(pOptionName);
>         if (configFile == null)
>                 configFile = 
>                         AxisProperties.getProperty(pOptionName);
>         if (configFile == null) {
>             configFile = pConfigFile;
>         }
> ------------------------------------------------------------------------------------------------------------------
> Replace lines 186 to 188 (at the end of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>                 InputStream is = 
>                         ClassUtils.getResourceAsStream(AxisServer.class,
>                                                        pConfigFile);
> ------------------------------------------------------------------------------------------------------------------

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (AXIS-2190) Configuration file location process different for client and server files

Posted by "Jason Sweeney (JIRA)" <ax...@ws.apache.org>.
    [ http://issues.apache.org/jira/browse/AXIS-2190?page=comments#action_12320466 ] 

Jason Sweeney commented on AXIS-2190:
-------------------------------------

After further research, this report should be ignored and the bug closed.  Indeed, when in a web application context, it is sufficient for the client-config.xml file to be placed in the classpath for the Axis client to discover it.

Our apologies for the noise!

Regards,

-Jason

> Configuration file location process different for client and server files
> -------------------------------------------------------------------------
>
>          Key: AXIS-2190
>          URL: http://issues.apache.org/jira/browse/AXIS-2190
>      Project: Apache Axis
>         Type: Bug
>   Components: Basic Architecture
>     Versions: 1.2.1
>  Environment: Not necessary for the issue
>     Reporter: Jason Sweeney

>
> When using the Axis client component within a web application, the client-config.xml file is usually placed in the same location as the server-config.xml file (if a server is also used).  As a result, Axis should follow the same process to locate the client configuration file as for the server file (in particular, check the WEB-INF folder of the web application).
> Patch to correct the problem (basically making the server configuration file function generic):
> File: org\apache\axis\configuration\EngineConfigurationFactoryServlet.java
> Replace lines 93 to 120 (getServerEngineConfig() and start of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>     /**
>      * Get a default server engine configuration.
>      *
>      * @return a server EngineConfiguration
>      */
>     public EngineConfiguration getServerEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_SERVER_CONFIG_FILE, SERVER_CONFIG_FILE);
>     }
>     /**
>      * Get a default client engine configuration.
>      *
>      * @return a client EngineConfiguration
>      */
>     public EngineConfiguration getClientEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_CLIENT_CONFIG_FILE, CLIENT_CONFIG_FILE);
>     }
>     /**
>      * Get a default engine configuration in a servlet environment.
>      *
>      * @param cfg a ServletConfig
>      * @param pOptionName configuration file name option
>      * @param pConfigFile configuration file name
>      * @return an EngineConfiguration
>      */
>     private static 
>             EngineConfiguration getServerEngineConfig(
>                 ServletConfig cfg, String pOptionName, String pConfigFile) 
>         {
>         
>         ServletContext ctx = cfg.getServletContext();
>         
>         // Respect the system property setting for a different config file
>         String configFile = cfg.getInitParameter(pOptionName);
>         if (configFile == null)
>                 configFile = 
>                         AxisProperties.getProperty(pOptionName);
>         if (configFile == null) {
>             configFile = pConfigFile;
>         }
> ------------------------------------------------------------------------------------------------------------------
> Replace lines 186 to 188 (at the end of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>                 InputStream is = 
>                         ClassUtils.getResourceAsStream(AxisServer.class,
>                                                        pConfigFile);
> ------------------------------------------------------------------------------------------------------------------

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (AXIS-2190) Configuration file location process different for client and server files

Posted by "Jason Sweeney (JIRA)" <ax...@ws.apache.org>.
    [ http://issues.apache.org/jira/browse/AXIS-2190?page=comments#action_12319723 ] 

Jason Sweeney commented on AXIS-2190:
-------------------------------------

There is a small typo in the first part of the patch, the private method should be named "getServletEngineConfig" not "getServerEngineConfig".

> Configuration file location process different for client and server files
> -------------------------------------------------------------------------
>
>          Key: AXIS-2190
>          URL: http://issues.apache.org/jira/browse/AXIS-2190
>      Project: Apache Axis
>         Type: Bug
>   Components: Basic Architecture
>     Versions: 1.2.1
>  Environment: Not necessary for the issue
>     Reporter: Jason Sweeney

>
> When using the Axis client component within a web application, the client-config.xml file is usually placed in the same location as the server-config.xml file (if a server is also used).  As a result, Axis should follow the same process to locate the client configuration file as for the server file (in particular, check the WEB-INF folder of the web application).
> Patch to correct the problem (basically making the server configuration file function generic):
> File: org\apache\axis\configuration\EngineConfigurationFactoryServlet.java
> Replace lines 93 to 120 (getServerEngineConfig() and start of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>     /**
>      * Get a default server engine configuration.
>      *
>      * @return a server EngineConfiguration
>      */
>     public EngineConfiguration getServerEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_SERVER_CONFIG_FILE, SERVER_CONFIG_FILE);
>     }
>     /**
>      * Get a default client engine configuration.
>      *
>      * @return a client EngineConfiguration
>      */
>     public EngineConfiguration getClientEngineConfig() {
>         return getServletEngineConfig(cfg, OPTION_CLIENT_CONFIG_FILE, CLIENT_CONFIG_FILE);
>     }
>     /**
>      * Get a default engine configuration in a servlet environment.
>      *
>      * @param cfg a ServletConfig
>      * @param pOptionName configuration file name option
>      * @param pConfigFile configuration file name
>      * @return an EngineConfiguration
>      */
>     private static 
>             EngineConfiguration getServerEngineConfig(
>                 ServletConfig cfg, String pOptionName, String pConfigFile) 
>         {
>         
>         ServletContext ctx = cfg.getServletContext();
>         
>         // Respect the system property setting for a different config file
>         String configFile = cfg.getInitParameter(pOptionName);
>         if (configFile == null)
>                 configFile = 
>                         AxisProperties.getProperty(pOptionName);
>         if (configFile == null) {
>             configFile = pConfigFile;
>         }
> ------------------------------------------------------------------------------------------------------------------
> Replace lines 186 to 188 (at the end of getServerEngineConfig(ServletConfig cfg)) by this code
> ------------------------------------------------------------------------------------------------------------------
>                 InputStream is = 
>                         ClassUtils.getResourceAsStream(AxisServer.class,
>                                                        pConfigFile);
> ------------------------------------------------------------------------------------------------------------------

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira