You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Dmitry Rubenchik (JIRA)" <ji...@apache.org> on 2007/10/08 20:10:38 UTC
[jira] Updated: (STR-3103) Preloaded initialization servlet effects
global exception handling
[ https://issues.apache.org/struts/browse/STR-3103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitry Rubenchik updated STR-3103:
----------------------------------
Summary: Preloaded initialization servlet effects global exception handling (was: L)
> Preloaded initialization servlet effects global exception handling
> ------------------------------------------------------------------
>
> Key: STR-3103
> URL: https://issues.apache.org/struts/browse/STR-3103
> Project: Struts 1
> Issue Type: Bug
> Affects Versions: 1.3.8
> Environment: Windows XP
> Reporter: Dmitry Rubenchik
>
> I load my InitSrvlet through WEB.xml to perform an app initialization from property files. Once this servlet is loaded, it effects struts global exception handling.
> Defined global exceptions are not caught by struts framework. If I would disable load of the servlet, global exceptions are handled normally. Please let me know what could be a cause for this behavior.
> WEB.xml fragment:
> <servlet>
> <servlet-name>action</servlet-name>
> <servlet-class>
> org.apache.struts.action.ActionServlet
> </servlet-class>
> <init-param>
> <param-name>config</param-name>
> <param-value>/WEB-INF/struts-config.xml</param-value>
> </init-param>
> <init-param>
> <param-name>debug</param-name>
> <param-value>2</param-value>
> </init-param>
> <init-param>
> <param-name>detail</param-name>
> <param-value>2</param-value>
> </init-param>
> <init-param>
> <param-name>validate</param-name>
> <param-value>true</param-value>
> </init-param>
> <load-on-startup>2</load-on-startup>
> </servlet>
> <servlet>
> <servlet-name>InitSrvlt</servlet-name>
> <servlet-class>
> com.ubs.fcm.servlets.InitSrvlt</servlet-class>
> <init-param>
> <param-name>configFileName</param-name>
> <param-value>/apps/WasApps/FCM/FCMSystem/properties/log4j.properties</param-value>
> </init-param>
> <load-on-startup>-1</load-on-startup>
> </servlet>
> <servlet-mapping>
> <servlet-name>action</servlet-name>
> <url-pattern>*.do</url-pattern>
> </servlet-mapping>
> <servlet-mapping>
> <servlet-name>InitSrvlt</servlet-name>
> <url-pattern>/InitSrvlt</url-pattern>
> </servlet-mapping>
> InitSrvlet.java:
> package com.ubs.fcm.servlets;
> import java.io.FileInputStream;
> import java.io.IOException;
> import java.io.InputStream;
> import java.util.Enumeration;
> import java.util.Properties;
> import javax.servlet.Servlet;
> import javax.servlet.ServletConfig;
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServlet;
> import com.pwj.fwa.log4j.PwLoggingConfigurator;
> import com.pwj.fwa.log4j.PwLoggingSubLevel;
> import com.ubs.fcm.common.ConfigFCM;
> //import com.ubs.fcm.exceptions.*;
> import com.ubs.fcm.log.Log;
> /**
> * @version 1.0
> * @author
> */
> public class InitSrvlt extends HttpServlet implements Servlet {
>
> /**
> * @see javax.servlet.GenericServlet#void ()
> */
> public void init(ServletConfig config) throws ServletException {
>
> // Setting pwlog init parameters
>
>
> String configFileName=null;
> try {
> configFileName = (String)(new javax.naming.InitialContext()).lookup("java:comp/env/LOG4J_SOURCE");
> } catch (Exception e) {
> e.printStackTrace(System.err);
> }
> String rootLogDir = null;
>
> InputStream logPropsFile;
> Properties logProp = new Properties();
> try {
> logPropsFile = new FileInputStream(configFileName);
>
> logProp.load(logPropsFile);
> logPropsFile.close();
>
> Enumeration enLogProps = logProp.propertyNames();
> String logKey;
> while ( enLogProps.hasMoreElements() ) {
> logKey = (String) enLogProps.nextElement();
> try{
> if(logKey.equals("ROOT_LOG_DIR")){
> rootLogDir=logProp.getProperty(logKey);
> }
> }
> catch(NumberFormatException e){
> e.printStackTrace(System.err);
> throw e;
> }
> }
> } catch (IOException e) {
> e.printStackTrace(System.err);
> }
>
> PwLoggingConfigurator pwLog = PwLoggingConfigurator.getInstance(config);
> pwLog.setLogFileName(rootLogDir);
>
> if (Log.loggerDebug.isDebugEnabled())
> Log.loggerDebug.debug("InitSrvlt.init(): PwLoggin initialized successfully ", PwLoggingSubLevel.DEBUG);
>
> super.init(config);
>
> InputStream propsFile;
> Properties prop = new Properties();
>
>
>
> try {
> try {
> ConfigFCM.setAppPropPath((String)(new javax.naming.InitialContext()).lookup("java:comp/env/CONFIG_SOURCE"));
> } catch (Exception e) {
> Log.loggerError.error("InitSrvlt.init(): Error retrieving environment variable java:comp/env/CONFIG_SOURCE.", PwLoggingSubLevel.NONE);
> }
>
> propsFile = new FileInputStream(ConfigFCM.getAppPropPath());
>
> //Throw an application exception if results were not found.
> //if (propsFile == null) {
> //throw new ConfigurationFileNotFoundException();
> //}
>
> prop.load(propsFile);
> propsFile.close();
> Enumeration enProps = prop.propertyNames();
> String key;
> while ( enProps.hasMoreElements() ) {
> key = (String) enProps.nextElement();
> if(key.equals("propPath"))
> ConfigFCM.setPwSecPropPath(prop.getProperty(key));
> try{
> if(key.equals("appCode"))
> ConfigFCM.setPwSecAppCode(Integer.parseInt(prop.getProperty(key)));
> }
> catch(NumberFormatException e){
> Log.loggerError.error("InitSrvlt.init(): Invalid value for appCode in FCMapp.properties.", PwLoggingSubLevel.NONE);
> throw e;
> }
> try{
> if(key.equals("appName"))
> ConfigFCM.setPwSecAppName(prop.getProperty(key));
> }
> catch(NumberFormatException e){
> Log.loggerError.error("InitSrvlt.init(): Invalid value for appName in FCMapp.properties.", PwLoggingSubLevel.NONE);
> throw e;
> }
> try{
> if(key.equals("generalUserPermCode"))
> ConfigFCM.setPwSecGenUserCode(Integer.parseInt(prop.getProperty(key)));
> }
> catch(NumberFormatException e){
> Log.loggerError.error("InitSrvlt.init(): Invalid value for generalUserPermCode in FCMapp.properties.", PwLoggingSubLevel.NONE);
> throw e;
> }
> try{
> if(key.equals("adminUserPermCode"))
> ConfigFCM.setPwSecAdminUserCode(Integer.parseInt(prop.getProperty(key)));
> }
> catch(NumberFormatException e){
> Log.loggerError.error("InitSrvlt.init(): Invalid value for adminUserPermCode in FCMapp.properties.", PwLoggingSubLevel.NONE);
> throw e;
> }
> if(key.equals("data_source"))
> ConfigFCM.setDataSource(prop.getProperty(key));
>
> }
>
>
> //Initialize Web Tabs from xml file
> //initTabControl();
> //initReportManager();
>
> if (Log.loggerDebug.isDebugEnabled())
> Log.loggerDebug.debug("InitSrvlt.init(): FCM App proporties initialized successfully ", PwLoggingSubLevel.DEBUG);
> } catch (IOException e) {
> Log.loggerError.error("InitSrvlt.init(): I/O Exception: Can't read FCMapp.properties.", PwLoggingSubLevel.NONE,e);
> }
>
>
>
> }
>
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.