jAPS 2.0.10 migration from tomcat to jboss 6.2.2 EAP

100 views
Skip to first unread message

Daniele

unread,
Jun 5, 2014, 4:43:53 AM6/5/14
to ent...@googlegroups.com
Hello,
i've been trying a migration of my portal from Tomcat to jBoss 6.2.2 EAP recently and i've found some problems during the deploy.
I've followed the doc jAPS2.0-JBossDeploymentGuide, modifying the web.xml inserting the entries of the context.xml environments and modifying the systemConfig.xml for the DataSources, but i still have some problems.
The problem seems to be at the file baseManagersConfig.xml.

Here are the error logs of jboss:

12:31:24,796 INFO  [org.jboss.web] (ServerService Thread Pool -- 337) JBAS018210: Register web context: /portale
12:31:25,097 INFO  [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/portale]] (ServerService Thread Pool -- 337) Initializing Spring root WebApplicationContext
12:31:32,016 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/portale]] (ServerService Thread Pool -- 337) JBWEB000287: Exception sending context initialized event to listener instance of class com.agiletec.aps.servlet.StartupListener: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'BaseConfigManager' defined in ServletContext resource [/WEB-INF/conf/managers/baseManagersConfig.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) [spring-beans-2.5.6.jar:2.5.6]
        at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.6.0_30]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) [spring-context-2.5.6.jar:2.5.6]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) [spring-context-2.5.6.jar:2.5.6]
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) [spring-web-2.5.6.jar:2.5.6]
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) [spring-web-2.5.6.jar:2.5.6]
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) [spring-web-2.5.6.jar:2.5.6]
        at com.agiletec.aps.servlet.StartupListener.contextInitialized(StartupListener.java:37) [classes:]
        at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.3.1.Final-redhat-1.jar:7.3.1.Final-redhat-1]
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.3.1.Final-redhat-1.jar:7.3.1.Final-redhat-1]
        at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.6.0_30]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.6.0_30]
        at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.6.0_30]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) [rt.jar:1.6.0_30]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.6.0_30]
        at java.lang.Thread.run(Thread.java:701) [rt.jar:1.6.0_30]
        at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.NullPointerException
        at com.agiletec.aps.system.services.baseconfig.BaseConfigManager.parseParams(BaseConfigManager.java:125) [classes:]
        at com.agiletec.aps.system.services.baseconfig.BaseConfigManager.init(BaseConfigManager.java:51) [classes:]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_30]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.6.0_30]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.6.0_30]
        at java.lang.reflect.Method.invoke(Method.java:622) [rt.jar:1.6.0_30]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375) [spring-beans-2.5.6.jar:2.5.6]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) [spring-beans-2.5.6.jar:2.5.6]
        ... 28 more
12:31:32,587 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/portale]] (ServerService Thread Pool -- 337) JBWEB000287: Exception sending context initialized event to listener instance of class com.agiletec.apsadmin.system.resource.JapsPluginLabelListener: java.lang.NullPointerException
        at com.agiletec.apsadmin.system.resource.JapsPluginLabelListener.contextInitialized(JapsPluginLabelListener.java:57) [classes:]
        at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.3.1.Final-redhat-1.jar:7.3.1.Final-redhat-1]
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.3.1.Final-redhat-1.jar:7.3.1.Final-redhat-1]
        at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.6.0_30]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.6.0_30]
        at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.6.0_30]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) [rt.jar:1.6.0_30]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.6.0_30]
        at java.lang.Thread.run(Thread.java:701) [rt.jar:1.6.0_30]
        at org.jboss.threads.JBossThread.run(JBossThread.java:122)
12:31:32,597 ERROR [org.apache.catalina.core] (ServerService Thread Pool -- 337) JBWEB001103: Error detected during context /portale start, will stop it
12:31:32,597 INFO  [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/portale]] (ServerService Thread Pool -- 337) Closing Spring root WebApplicationContext
12:31:32,598 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 337) MSC000001: Failed to start service jboss.web.deployment.default-host./portale: org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./portale: org.jboss.msc.service.StartException in anonymous service: JBAS018040: Failed to start context
        at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:96)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.6.0_30]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.6.0_30]
        at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.6.0_30]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) [rt.jar:1.6.0_30]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.6.0_30]
        at java.lang.Thread.run(Thread.java:701) [rt.jar:1.6.0_30]
        at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: org.jboss.msc.service.StartException in anonymous service: JBAS018040: Failed to start context
        at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:161)
        at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60)
        at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93)
        ... 7 more
12:31:32,821 ERROR [org.jboss.as.server] (HttpManagementService-threads - 4) JBAS015870: Deploy of deployment "portale.war" was rolled back with the following failure message:
{"JBAS014671: Failed services" => {"jboss.web.deployment.default-host./portale" => "org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./portale: org.jboss.msc.service.StartException in anonymous service: JBAS018040: Failed to start context
    Caused by: org.jboss.msc.service.StartException in anonymous service: JBAS018040: Failed to start context"}}
12:31:33,141 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment portale.war (runtime-name: portale.war) in 330ms

The baseManagerConfigs.xml is as follows:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd" >

<bean id="NotifyManager" class="com.agiletec.aps.system.services.notify.NotifyManager" />

<bean id="abstractService" abstract="true" class="com.agiletec.aps.system.services.AbstractService" 
init-method="init" >
<property name="notifyManager" ref="NotifyManager" />
</bean>

<bean id="BaseConfigManager" class="com.agiletec.aps.system.services.baseconfig.BaseConfigManager" 
parent="abstractService" >
<property name="systemParams">
<map>
<entry key="version"><value>${version}</value></entry>
<entry key="configVersion"><jee:jndi-lookup jndi-name="java:comp/env/configVersion" /></entry>
<entry key="applicationBaseURL"><jee:jndi-lookup jndi-name="java:comp/env/applicationBaseURL" /></entry>
<entry key="resourceRootURL"><jee:jndi-lookup jndi-name="java:comp/env/resourceRootURL" /></entry>
<entry key="resourceDiskRootFolder"><jee:jndi-lookup jndi-name="java:comp/env/resourceDiskRootFolder" /></entry>
</map>
</property>
<property name="configDAO" >
<bean class="com.agiletec.aps.system.services.baseconfig.ConfigItemDAO">
<property name="dataSource" ref="portDataSource" />
</bean>
</property>
</bean>

<bean id="abstractApsAutorityManager" abstract="true" class="com.agiletec.aps.system.services.authorization.authorizator.AbstractApsAutorityManager" 
parent="abstractService" >
<property name="userManager" ref="UserManager" />
</bean>

<bean id="GroupManager" class="com.agiletec.aps.system.services.group.GroupManager" 
parent="abstractApsAutorityManager" >
<property name="groupDAO" >
<bean class="com.agiletec.aps.system.services.group.GroupDAO">
<property name="dataSource" ref="servDataSource" />
</bean>
</property>
</bean>

<bean id="RoleManager" class="com.agiletec.aps.system.services.role.RoleManager" 
parent="abstractApsAutorityManager" >
<property name="roleDAO" >
<bean class="com.agiletec.aps.system.services.role.RoleDAO">
<property name="dataSource" ref="servDataSource" />
</bean>
</property>
<property name="permissionDAO" >
<bean class="com.agiletec.aps.system.services.role.PermissionDAO">
<property name="dataSource" ref="servDataSource" />
</bean>
</property>
</bean>

<bean id="UserManager" class="com.agiletec.aps.system.services.user.UserManager" 
parent="abstractService" >
<property name="userDAO" >
<bean class="com.agiletec.aps.system.services.user.UserDAO">
<property name="dataSource" ref="servDataSource" />
<property name="encrypter">
<bean class="com.agiletec.aps.util.Md5Encrypter"></bean>
</property>
</bean>
</property>
<property name="configManager" ref="BaseConfigManager"/>
</bean>

<bean id="AuthenticationProviderManager" class="com.agiletec.aps.system.services.user.AuthenticationProviderManager" 
parent="abstractService" >
<property name="userManager" ref="UserManager" />
<property name="authorizators">
<list>
<ref bean="RoleManager" />
<ref bean="GroupManager" />
</list>
</property>
</bean>

<bean id="AuthorizationManager" class="com.agiletec.aps.system.services.authorization.AuthorizationManager" 
parent="abstractService" >
<property name="roleManager" ref="RoleManager" />
<property name="groupManager" ref="GroupManager" />
</bean>

<bean id="CacheManager" class="com.agiletec.aps.system.services.cache.CacheManager" 
parent="abstractService" >
<property name="cachePropertiesFilePath" ><value>${cachePropertiesFilePath}</value></property>
<property name="cacheDiskRootFolder"><jee:jndi-lookup jndi-name="java:comp/env/cacheDiskRootFolder" /></property>
</bean>

<bean id="LangManager" class="com.agiletec.aps.system.services.lang.LangManager" 
parent="abstractService" >
<property name="configManager" ref="BaseConfigManager"/>
</bean>

<bean id="CategoryManager" class="com.agiletec.aps.system.services.category.CategoryManager" 
parent="abstractService" >
<property name="langManager" ref="LangManager"/>
<property name="categoryDAO" >
<bean class="com.agiletec.aps.system.services.category.CategoryDAO">
<property name="dataSource" ref="portDataSource" />
</bean>
</property>
</bean>

<bean id="ShowletTypeManager" class="com.agiletec.aps.system.services.showlettype.ShowletTypeManager" 
parent="abstractService" >
<property name="showletTypeDAO" >
<bean class="com.agiletec.aps.system.services.showlettype.ShowletTypeDAO">
<property name="dataSource" ref="portDataSource" />
</bean>
</property>
</bean>

<bean id="PageModelManager" class="com.agiletec.aps.system.services.pagemodel.PageModelManager" 
parent="abstractService" >
<property name="pageModelDAO" >
<bean class="com.agiletec.aps.system.services.pagemodel.PageModelDAO">
<property name="dataSource" ref="portDataSource" />
<property name="showletTypeManager" ref="ShowletTypeManager" />
</bean>
</property>
</bean>

<bean id="PageManager" class="com.agiletec.aps.system.services.page.PageManager" 
parent="abstractService" >
<property name="pageDAO" >
<bean class="com.agiletec.aps.system.services.page.PageDAO">
<property name="dataSource" ref="portDataSource" />
<property name="showletTypeManager" ref="ShowletTypeManager" />
<property name="pageModelManager" ref="PageModelManager" />
</bean>
</property>
</bean>

<bean id="NavigatorParser" class="com.agiletec.aps.system.services.page.showlet.NavigatorParser">
<property name="authManager" ref="AuthorizationManager"/>
<property name="pageManager" ref="PageManager"/>
</bean>

<bean id="URLManager" class="com.agiletec.aps.system.services.url.URLManager" 
parent="abstractService" >
<property name="configManager" ref="BaseConfigManager"/>
<property name="pageManager" ref="PageManager"/>
<property name="langManager" ref="LangManager"/>
</bean>

<bean id="I18nManager" class="com.agiletec.aps.system.services.i18n.I18nManager" 
parent="abstractService" >
<property name="i18nDAO" >
<bean class="com.agiletec.aps.system.services.i18n.I18nDAO">
<property name="dataSource" ref="portDataSource" />
</bean>
</property>
</bean>

<bean id="KeyGeneratorManager" class="com.agiletec.aps.system.services.keygenerator.KeyGeneratorManager" 
parent="abstractService" >
<property name="keyGeneratorDAO" >
<bean class="com.agiletec.aps.system.services.keygenerator.KeyGeneratorDAO">
<property name="dataSource" ref="portDataSource" />
</bean>
</property>
</bean>

</beans>

Is there something that i missed or not inserted in the document to complete the migration?
Anyone had the same problem?

Thank you for the assistance 

Daniele

unread,
Jun 9, 2014, 6:04:41 AM6/9/14
to ent...@googlegroups.com
Actually i have to update my request.
During testing the deployement of the application i've found that the problem is about calling Log methods and classes (Ex. BaseConfigManager.java:125 )
So i'm starting to think there's a problem on creating logs for the application.

I've already set up the using of own application log4j in jboss and in the WebApp with these parameters:

jboss standalone.xml: <system-properties> <property name="org.jboss.as.logging.per-deployment" value="false"/> </system-properties>
jboss-deployment-structure.xml inside application:
<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
<deployment> 
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.apache.log4j" />
</exclusions>
</deployment>
</jboss-deployment-structure> 


i'll share here the BaseConfigManager.java, the web.xml env parameters and the context.xml env parameters.

BaseConfigManager.java:
/*
*
* Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved.
*
* This file is part of jAPS software.
* jAPS is a free software; 
* you can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2.

* See the file License for the specific language governing permissions   
* and limitations under the License



* Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved.
*
*/
package com.agiletec.aps.system.services.baseconfig;
import java.io.StringReader;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.digester.Digester;
import org.apache.commons.digester.Rule;
import com.agiletec.aps.system.ApsSystemUtils;
import com.agiletec.aps.system.SystemConstants;
import com.agiletec.aps.system.exception.ApsSystemException;
import com.agiletec.aps.system.services.AbstractService;
import com.agiletec.aps.util.ForJLogger;
import com.agiletec.aps.util.MapSupportRule;
/**
 * Servizio di configurazione. Carica da db e rende disponibile
 * la configurazione. La configurazione è costituita da voci (items), individuate
 * da un nome, e da parametri, anch'essi individuati da un nome. I parametri sono
 * stringhe semplici, le voci possono essere testi XML complessi.
 * In particolare, una delle voci contiene la configurazione dei parametri
 * in forma di testo XML.
 * L'insieme dei parametri comprende anche le proprietà  di inizializzazione,
 * passate alla factory del contesto di sistema; i valori di queste possono
 * essere sovrascritti dai valori di eventuali parametri omonimi.
 * @author 
 */
public class BaseConfigManager extends AbstractService implements ConfigInterface {

public void init() throws Exception {
this.loadConfigItems();
this._params = this.parseParams(_params);
ApsSystemUtils.getLogger().config(this.getClass().getName() + ": initialized # "
+ _configItems.size() + " configuration items and "
+ _params.size() + " parameters");
}

/**
* Restituisce il valore di una voce della tabella di sistema.
* Il valore può essere un XML complesso.
* @param name Il nome della voce di configurazione.
* @return Il valore della voce di configurazione.
*/
public String getConfigItem(String name) {
return (String) _configItems.get(name);
}

/**
* Aggiorna un'item di configurazione nella mappa 
* della configurazione degli item e nel db.
* @param itemName Il nome dell'item da aggiornare.
* @param config La nuova configurazione.
* @throws ApsSystemException
*/
public void updateConfigItem(String itemName, String config) throws ApsSystemException {
String oldParamValue = this.getConfigItem(itemName);
this._configItems.put(itemName, config);
String version = (String) _params.get(SystemConstants.INIT_PROP_CONFIG_VERSION);
try {
this.getConfigDAO().updateConfigItem(itemName, config, version);
this.refresh();
} catch (Throwable t) {
this._configItems.put(itemName, oldParamValue);
ApsSystemUtils.logThrowable(t, this, "updateConfigItem");
throw new ApsSystemException("Error while updating item", t);
}
}

/**
* Restituisce il valore di un parametro di configurazione.
* I parametri sono desunti dalla voce "params" della tabella di sistema.
* @param name Il nome del parametro di configurazione.
* @return Il valore del parametro di configurazione.
*/
public String getParam(String name) {
return (String) _params.get(name);
}

/**
* Carica le voci di configurazione da db e le memorizza su un Map.
* @throws ApsSystemException in caso di errori di lettura da db
*/
private void loadConfigItems() throws ApsSystemException {
String version = (String) _params.get(SystemConstants.INIT_PROP_CONFIG_VERSION);
try {
_configItems = this.getConfigDAO().loadVersionItems(version);
} catch (Throwable t) {
throw new ApsSystemException("Error while loading items", t);
}
}

/**
* Esegue il parsing della voce di configurazione "params" per
* estrarre i parametri. I parametri sono caricati sul Map passato
* come argomento. I parametri corrispondono a tag del tipo:<br>
* &lt;Param name="nome_parametro"&gt;valore_parametro&lt;/Param&gt;<br> 
* qualunque sia la loro posizione relativa nel testo XML.<br>
* ATTENZIONE: non viene controllata l'univocità  del nome, in caso
* di doppioni il precedente valore perso.
* @throws ApsSystemException In caso di errori IO e Sax
*/
private Map<String, String> parseParams(Map<String, String> params) throws ApsSystemException{
String xml = this.getConfigItem("params");
Digester dig = new Digester();
Logger log = ApsSystemUtils.getLogger();
Logger digLog = Logger.getLogger(log.getName() + ".digester");
digLog.setLevel(Level.SEVERE);
dig.setLogger(new ForJLogger(digLog));
Rule rule = new MapSupportRule("name");
dig.addRule("*/Param", rule);
dig.push(params);
try {
dig.parse(new StringReader(xml));
} catch (Exception e) {
ApsSystemUtils.logThrowable(e, this, "parseParams");
throw new ApsSystemException(
"Error detected while parsing the \"params\" item in the \"sysconfig\" table:" +
" verify the \"sysconfig\" table", e);
}
return params;
}

/**
     * Restutuisce il dao in uso al manager.
     * @return Il dao in uso al manager.
     */
    protected IConfigItemDAO getConfigDAO() {
return _configDao;
}

/**
     * Setta il dao in uso al manager.
     * @param configDao Il dao in uso al manager.
     */
public void setConfigDAO(IConfigItemDAO configDao) {
this._configDao = configDao;
}

/**
* Setta la mappa dei parametri di inizializzazione del sistema.
* @param systemParams La mappa dei parametri di inizializzazione.
*/
public void setSystemParams(Map<String, String> systemParams) {
this._params = systemParams;
}

/**
* Map contenente tutte le voci di configurazione di una versione.
*/
private Map<String, String> _configItems;
/**
* Map contenente tutti i parametri di configurazione di una versione.
*/
private Map<String, String> _params;

private IConfigItemDAO _configDao;

}

context.xml envs:
<Environment name="logName" value="portale" type="java.lang.String" override="false" />
<Environment name="logFilePrefix" value="/var/log/portale/pt_logs" type="java.lang.String" override="false" />
<Environment name="logLevel" value="ALL" type="java.lang.String" override="false" />
<Environment name="logFileSize" value="200000" type="java.lang.String" override="false" />
<Environment name="logFilesCount" value="10" type="java.lang.String" override="false" />

<Environment name="configVersion" value="production" type="java.lang.String" override="false" />

<Environment name="applicationBaseURL" value="https://portal.test.local/portale/" type="java.lang.String" override="false" />
<Environment name="resourceRootURL" value="/portale/resources/" type="java.lang.String" override="false" />
<Environment name="protectedResourceRootURL" value="/portal/protected/" type="java.lang.String" override="false" />

<Environment name="resourceDiskRootFolder" value="/usr/local/portal/portale.war/resources" type="java.lang.String" override="false" />
<Environment name="protectedResourceDiskRootFolder" value="/usr/local/portal/portale.war/protected" type="java.lang.String" override="false" />

<Environment name="indexDiskRootFolder" value="/usr/local/portal/portale.war/temp/indexdir" type="java.lang.String" override="false" />

<Environment name="cacheDiskRootFolder" value="/usr/local/portal/portale.war/cache" type="java.lang.String" override="false" />

<!-- ### jpavatar START ## -->
<Environment name="jpavatarAvatarDiskFolder" value="/usr/local/www/data/avatars/" type="java.lang.String" override="false" />
<Environment name="jpavatarAvatarURL" value="http://portal.test.local/avatars/" type="java.lang.String" override="false" />
<Environment name="jpavatarImageMaxSize" value="600" type="java.lang.Integer" override="false" />
<Environment name="jpavatarImageMaxWidth" value="128" type="java.lang.Integer" override="false" />
<Environment name="jpavatarImageMaxHeight" value="128" type="java.lang.Integer" override="false" />
<Environment name="jpavatarImageTypes" value="png,jpg,gif" type="java.lang.String" override="false" />
<!-- ### jpavatar END ### -->

web.xml envs;
<env-entry>
<env-entry-name>logName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>portale</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>logFilePrefix</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/var/log/portale/pt_logs</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>logLevel</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>ALL</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>logFileSize</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>200000</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>logFilesCount</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>10</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>configVersion</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>production</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>applicationBaseURL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>https://portal.test.local/portale/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>resourceRootURL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/portale/resources/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>protectedResourceRootURL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/portale/protected/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>resourceDiskRootFolder</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/usr/local/portal/portale.war/recources</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>protectedResourceDiskRootFolder</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/usr/local/portal/portale.war/protected</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>indexDiskRootFolder</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/usr/local/portal/portale.war/temp/indexdir</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>cacheDiskRootFolder</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/usr/local/portal/portale.war/cache</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>jpavatarAvatarDiskFolder</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/usr/local/www/data/avatars/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>jpavatarAvatarURL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>http://portal.test.local/avatars/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>jpavatarImageMaxSize</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>600</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>jpavatarImageMaxWidth</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>128</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>jpavatarImageMaxHeight</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>128</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>jpavatarImageTypes</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>png,jpg,gif</env-entry-value>
</env-entry>


Thanks again
Reply all
Reply to author
Forward
0 new messages