Re: re: struts vs ibatis - Integer type
It sounds to me like you are corrupting your model and introducing ambiguity. Using Strings for Dates and Integers is a bad idea. We've successfully dealt with those issues without corrupting our model. That is the purpose of the ActionForm. It is a point in which you need to convert your user input to your model. I think you are shortcutting here and will regret it later on. This is not a good practice. More I think about that, more I relise that, you have absolutely right about that. I also realise that, it goes a little beyond that group, and comes to the struts, but you went through it, nested bean. The other option is to write a different BeanUtils Converter implementation for numerics and register it (http://jakarta.apache.org/commons/beanutils/api/org/apache/commons/beanuti ls/ConvertUtils.html#register(org.apache.commons.beanutils.Converter,%20java .lang.Class). I found strutslive application, which shows something about this, but the example is more sophisticated, that I need now. The question is: What level should I register my Converter at? I looked into struts source, and I went to that: the request processor invokes method: populate which invokes RequestUtils.convert or populate, which goes to the ConvertUtils and so on What is the simpliest way to register my converter, that it should correspond to all actionForms. I want to do it above population of all actionForms, instead of doing it in all actionForm set/get method. What parts /objects should I implement on my own. (whole request processor, and how does it affect TilesRequestProcessor used by TilesPlugin) I realise that it is more about struts, but it came out from my topic:) Any hints would be appreciated Best regards Darek
Re: Delete records from Database
We need more than my deleteEventAction doesen't work here. Are you getting SQLException? NullPointer? Stack trace? Referential constraints? Throw us a bone here. :) Is this iBATIS 1.x? It looks like it - you should be using 2.x for new development.On 5/8/05, Laura Matei [EMAIL PROTECTED] wrote: Hi! I need some help with deleting some records from the database. I have two tables EVENTwith column: eventIdand EVENTTIMETABLE with columns: eventTimeTableId and eventId.I want to delete an event with a certain Id and all the timetablescorresponding tothat event. I willsend my code... if you please look at it and tell me what I do wrong because my deleteEventAction doesen't work! public void deleteEvent(int eventId) throws DaoException { try { eventDaoManager.startTransaction(); eventDao.deleteEvent(eventId); eventDaoManager.commitTransaction(); } catch (DaoException e) { try { storeDaoManager.rollbackTransaction(); } catch (Exception e2) throw ((DaoException) e.fillInStackTrace()); } } void deleteEvent(int eventId) throws DaoException; public void deleteEvent(int eventId) throws DaoException { Object parameterObject = new Integer(eventId); executeUpdate(deleteEvent, parameterObject); } mapped-statement name=deleteEvent delete EVENT,EVENTTIMETABLE fromEVENT,EVENTTIMETABLE where EVENT.EVENTID = #value# and EVENT.EVENTID = EVENTTIMETABLE.EVENTID /mapped-statement public class DeleteEventAction extends BaseAction { public ActionForward doPerform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { OrganizAccountForm orgAcctForm = (OrganizAccountForm) form; String orgUsername = orgAcctForm.getOrganizAccount().getOrgUsername(); int eventId = Integer.parseInt(request.getParameter(eventId)); tugis.deleteEvent(eventId); request.setAttribute(eventList, tugis.getEventsByOrgUsername(orgUsername)); return mapping.findForward(success);}} action path=/portal/deleteEvent type=tugis.presentation.action.DeleteEventAction name=organizAccountForm scope=session validate=true input=/jsp/ViewRegisteredEvent.jsp forward name=success path=/jsp/ListEvents.jsp/ /action And in the JSP code: html:link paramId=eventId paramName=event paramProperty=eventId page=/portal/deleteEvent.doDelete/html:link Well, please someone take a look and help me out! Or maybe someonehave done something similar already and send me an example! Thanks! Laura Discover Yahoo! Have fun online with music videos, cool games, IM more. Check it out!
Re: SQLException when deleting
From: Clinton Begin [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: ibatis-user-java@incubator.apache.org Subject: Re: SQLException when deleting Date: Sun, 8 May 2005 21:45:01 -0600 Oddthe DAO template doesn't throw an exception... public int delete(String id, Object parameterObject) { Maybe you're using an old version of the framework? Cheers, Clinton On 5/8/05, Lieven De Keyzer [EMAIL PROTECTED] wrote: This is a snapshot of my AccountSqlMapDao, following the concepts of the latest JPetStore. public void insertAccount(Account account) { insert(insertAccount, account); } public void updateAccount(Account account) { update(updateAccount, account); } public void deleteAccount(Account account) { delete(deleteAccount, account); } I get an error however in deleteAccount: unreported exception java.sql.SQLException; must be caught or declared to be thrown [javac] delete(deleteAccount, account); Why do I need to catch the exception for the delete statement, but not for the insert or update method?
Re: re: struts vs ibatis - Integer type
These links will help you write and register a converter for BeanUtils. http://jakarta.apache.org/commons/beanutils/apidocs/org/apache/commons/beanutils/ConvertUtilsBean.html http://jakarta.apache.org/commons/beanutils/apidocs/org/apache/commons/beanutils/ConvertUtils.html http://jakarta.apache.org/commons/beanutils/apidocs/org/apache/commons/beanutils/Converter.html You can register the converter in a couple of places: 1) Write a servlet listener class and declare it in your web.xml 2) Write a struts plugin class and declare it in your struts-config.xml Brandon On 5/9/05, Darek Dober [EMAIL PROTECTED] wrote: It sounds to me like you are corrupting your model and introducing ambiguity. Using Strings for Dates and Integers is a bad idea. We've successfully dealt with those issues without corrupting our model. That is the purpose of the ActionForm. It is a point in which you need to convert your user input to your model. I think you are shortcutting here and will regret it later on. This is not a good practice. More I think about that, more I relise that, you have absolutely right about that. I also realise that, it goes a little beyond that group, and comes to the struts, but you went through it, nested bean. The other option is to write a different BeanUtils Converter implementation for numerics and register it (http://jakarta.apache.org/commons/beanutils/api/org/apache/commons/beanuti ls/ConvertUtils.html#register(org.apache.commons.beanutils.Converter,%20java .lang.Class). I found strutslive application, which shows something about this, but the example is more sophisticated, that I need now. The question is: What level should I register my Converter at? I looked into struts source, and I went to that: the request processor invokes method: populate which invokes RequestUtils.convert or populate, which goes to the ConvertUtils and so on What is the simpliest way to register my converter, that it should correspond to all actionForms. I want to do it above population of all actionForms, instead of doing it in all actionForm set/get method. What parts /objects should I implement on my own. (whole request processor, and how does it affect TilesRequestProcessor used by TilesPlugin) I realise that it is more about struts, but it came out from my topic:) Any hints would be appreciated Best regards Darek
Re: re: struts vs ibatis - Integer type
I haven't tested this Integer Converter but this should work //CustomStringToIntegerConverter.java import org.apache.commons.beanutils.Converter;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory; public class CustomStringToIntegerConverter implements Converter { public Object convert(Class type, Object value) {Integer theInteger = null;if (value != null !value.toString().trim().equals() (value instanceof String type == java.lang.Integer.class) ) { theInteger = Integer.valueOf( value ); }}return theInteger;}} Then to implement, have a servlet listener that runs on start up and registers this converter and you are done: import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class YourServletContextListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent contextEvent) { //might want to remove stuff when context destroyed } public void contextInitialized(ServletContextEvent contextEvent) { ServletContext context = contextEvent.getServletContext(); try { ConvertUtils.register(new CustomStringToIntegerConverter(), Integer.class); } catch (Exception ex) { //log errors } } } In web.xml before servlet definitions: listener listener-classcom.whatever.YourServletContextListener/listener-class /listener-- Rick
Re: SQLException when deleting
This indeed solved my problem. Thanks a lot! From: Clinton Begin [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: Lieven De Keyzer [EMAIL PROTECTED] Subject: Re: SQLException when deleting Date: Mon, 9 May 2005 08:35:28 -0600 Try getting v2.0.9b. JPetStore doesn't necessarily come with the latest iBATIS JAR. They are separate development paths. Cheers, Clinto On 5/9/05, Lieven De Keyzer [EMAIL PROTECTED] wrote: From: Clinton Begin [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: ibatis-user-java@incubator.apache.org Subject: Re: SQLException when deleting Date: Sun, 8 May 2005 21:45:01 -0600 Oddthe DAO template doesn't throw an exception... public int delete(String id, Object parameterObject) { Maybe you're using an old version of the framework? I'm using the same jar files for the DAO and SqlMaps frameworks as used in the latest version of the JPetStore example. Anyway, here is the complete file: package com.vub.bookmarked.persistence.sqlmapdao; import com.ibatis.dao.client.DaoManager; import com.vub.bookmarked.domain.Account; import com.vub.bookmarked.persistence.iface.AccountDao; public class AccountSqlMapDao extends BaseSqlMapDao implements AccountDao { public AccountSqlMapDao(DaoManager daoManager) { super(daoManager); } public Account getAccount(String username) { return (Account) queryForObject(getAccountByUsername, username); } public Account getAccount(String username, String password) { Account account = new Account(); account.setUsername(username); account.setPassword(password); return (Account) queryForObject(getAccountByUsernameAndPassword, account); } public void insertAccount(Account account) { insert(insertAccount, account); } public void updateAccount(Account account) { update(updateAccount, account); } public void deleteAccount(Account account) { delete(deleteAccount, account); } } Cheers, Clinton On 5/8/05, Lieven De Keyzer [EMAIL PROTECTED] wrote: This is a snapshot of my AccountSqlMapDao, following the concepts of the latest JPetStore. public void insertAccount(Account account) { insert(insertAccount, account); } public void updateAccount(Account account) { update(updateAccount, account); } public void deleteAccount(Account account) { delete(deleteAccount, account); } I get an error however in deleteAccount: unreported exception java.sql.SQLException; must be caught or declared to be thrown [javac] delete(deleteAccount, account); Why do I need to catch the exception for the delete statement, but not for the insert or update method?
Re: Possible Connection Leak
Yes, the approach I suggested should be used regardless of your transaction type. Cheers, ClintonOn 5/9/05, Rafiq, Adnan [EMAIL PROTECTED] wrote: Thanks Clinton. We are using session beans to manage transactions in our application. Moreover, since we have multiple databases involved we are using XA- drivers. Will the approach you mentioned still work in this scenario? -Original Message-From: Clinton Begin [mailto:[EMAIL PROTECTED]]Sent: Saturday, May 07, 2005 9:30 PMTo: ibatis-user-java@incubator.apache.orgSubject: Re: Possible Connection LeakDo ALL of your SqlMap calls follow this pattern:try { sqlMap.startTransaction(); //...do work sqlMap.commitTransaction();} finally { sqlMap.endTransaction();}Clinton On 5/6/05, Rafiq, Adnan [EMAIL PROTECTED] wrote: I am using a transaction manager type = JTA in my sql-map-config.xml file.After running the application for a while, I am getting the followingmessage in my Weblogic 8.1 console:May 6, 2005 5:09:08 PM CDT Warning Common BEA-000620 Forcibly releasinginactive resource [EMAIL PROTECTED] backinto the pool TP_BOFA_SYS.According to BEA, there is a connection leak somewhere. Is it possible that iBatis is not properly closing a connection after obtaining it?Has anyone else come across a similar issue?
Re: Possible Connection Leak
Hi I am using the SpringDAO framework, basically the SqlMapDAOSupport and SqlMapTemplate, the Transaction is acturally controlled by Spring, in this case, how should I config the transaction of SqlMap, should I use External Type ? transactionManager type="EXTERNAL" dataSource type="JNDI" property name="DataSource" value="java:/PlateauDS"/ /dataSource /transactionManager Here is my DAO public class MyDAO extends SqlMapDAOSupport implements MyDAOService { public void myMethod () { getSqlMapClientTemplate().insert("insertAccount", account); } } The transaction is started in the EJB level, which calls the DAO, and a EJB may call any number of DAO to do the job, in this case, do I need to put in the SQLMap.startTransaction in the DAO code ? Thanks Ming [Ming Xue] -Original Message-From: Clinton Begin [mailto:[EMAIL PROTECTED]Sent: Monday, May 09, 2005 1:04 PMTo: ibatis-user-java@incubator.apache.orgSubject: Re: Possible Connection Leak Yes, the approach I suggested should be used regardless of your transaction type.Cheers,Clinton On 5/9/05, Rafiq, Adnan [EMAIL PROTECTED] wrote: Thanks Clinton. We are using session beans to manage transactions in our application. Moreover, since we have multiple databases involved we are using XA- drivers. Will the approach you mentioned still work in this scenario? -Original Message-From: Clinton Begin [mailto:[EMAIL PROTECTED]]Sent: Saturday, May 07, 2005 9:30 PMTo: ibatis-user-java@incubator.apache.orgSubject: Re: Possible Connection LeakDo ALL of your SqlMap calls follow this pattern:try { sqlMap.startTransaction(); //...do work sqlMap.commitTransaction();} finally { sqlMap.endTransaction();}Clinton On 5/6/05, Rafiq, Adnan [EMAIL PROTECTED] wrote: I am using a transaction manager type = JTA in my sql-map-config.xml file.After running the application for a while, I am getting the followingmessage in my Weblogic 8.1 console:May 6, 2005 5:09:08 PM CDT Warning Common BEA-000620 Forcibly releasinginactive resource "[EMAIL PROTECTED]" backinto the pool "TP_BOFA_SYS".According to BEA, there is a connection leak somewhere. Is it possible that iBatis is not properly closing a connection after obtaining it?Has anyone else come across a similar issue?
Re: Possible Connection Leak
No. You config JNDI in the spring.xml instead. -Henry Ming Xue wrote: Hi I am using the SpringDAO framework, basically the SqlMapDAOSupport and SqlMapTemplate, the Transaction is acturally controlled by Spring, in this case, how should I config the transaction of SqlMap, should I use External Type ? transactionManager type=EXTERNAL dataSource type=JNDI property name=DataSource value=java:/PlateauDS/ /dataSource /transactionManager Here is my DAO public class MyDAO extends SqlMapDAOSupport implements MyDAOService { public void myMethod () { getSqlMapClientTemplate().insert(insertAccount, account); } } The transaction is started in the EJB level, which calls the DAO, and a EJB may call any number of DAO to do the job, in this case, do I need to put in the SQLMap.startTransaction in the DAO code ? Thanks Ming [Ming Xue] -Original Message- *From:* Clinton Begin [mailto:[EMAIL PROTECTED] *Sent:* Monday, May 09, 2005 1:04 PM *To:* ibatis-user-java@incubator.apache.org *Subject:* Re: Possible Connection Leak Yes, the approach I suggested should be used regardless of your transaction type. Cheers, Clinton On 5/9/05, *Rafiq, Adnan* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Thanks Clinton. We are using session beans to manage transactions in our application. Moreover, since we have multiple databases involved we are using XA- drivers. Will the approach you mentioned still work in this scenario? -Original Message- *From:* Clinton Begin [mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]] *Sent:* Saturday, May 07, 2005 9:30 PM *To:* ibatis-user-java@incubator.apache.org mailto:ibatis-user-java@incubator.apache.org *Subject:* Re: Possible Connection Leak Do ALL of your SqlMap calls follow this pattern: try { sqlMap.startTransaction(); //...do work sqlMap.commitTransaction(); } finally { sqlMap.endTransaction(); } Clinton On 5/6/05, *Rafiq, Adnan* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: I am using a transaction manager type = JTA in my sql-map-config.xml file. After running the application for a while, I am getting the following message in my Weblogic 8.1 console: May 6, 2005 5:09:08 PM CDT Warning Common BEA-000620 Forcibly releasing inactive resource [EMAIL PROTECTED] back into the pool TP_BOFA_SYS. According to BEA, there is a connection leak somewhere. Is it possible that iBatis is not properly closing a connection after obtaining it? Has anyone else come across a similar issue?
RE: Possible Connection Leak
Do you mean I do not need Transaction in SqlMap at all (removing the TransactionManager tag) ? Thanks for any clarification. -Original Message- From: Henry Lu [mailto:[EMAIL PROTECTED] Sent: Monday, May 09, 2005 2:23 PM To: ibatis-user-java@incubator.apache.org Subject: Re: Possible Connection Leak No. You config JNDI in the spring.xml instead. -Henry Ming Xue wrote: Hi I am using the SpringDAO framework, basically the SqlMapDAOSupport and SqlMapTemplate, the Transaction is acturally controlled by Spring, in this case, how should I config the transaction of SqlMap, should I use External Type ? transactionManager type=EXTERNAL dataSource type=JNDI property name=DataSource value=java:/PlateauDS/ /dataSource /transactionManager Here is my DAO public class MyDAO extends SqlMapDAOSupport implements MyDAOService { public void myMethod () { getSqlMapClientTemplate().insert(insertAccount, account); } } The transaction is started in the EJB level, which calls the DAO, and a EJB may call any number of DAO to do the job, in this case, do I need to put in the SQLMap.startTransaction in the DAO code ? Thanks Ming [Ming Xue] -Original Message- *From:* Clinton Begin [mailto:[EMAIL PROTECTED] *Sent:* Monday, May 09, 2005 1:04 PM *To:* ibatis-user-java@incubator.apache.org *Subject:* Re: Possible Connection Leak Yes, the approach I suggested should be used regardless of your transaction type. Cheers, Clinton On 5/9/05, *Rafiq, Adnan* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Thanks Clinton. We are using session beans to manage transactions in our application. Moreover, since we have multiple databases involved we are using XA- drivers. Will the approach you mentioned still work in this scenario? -Original Message- *From:* Clinton Begin [mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]] *Sent:* Saturday, May 07, 2005 9:30 PM *To:* ibatis-user-java@incubator.apache.org mailto:ibatis-user-java@incubator.apache.org *Subject:* Re: Possible Connection Leak Do ALL of your SqlMap calls follow this pattern: try { sqlMap.startTransaction(); //...do work sqlMap.commitTransaction(); } finally { sqlMap.endTransaction(); } Clinton On 5/6/05, *Rafiq, Adnan* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: I am using a transaction manager type = JTA in my sql-map-config.xml file. After running the application for a while, I am getting the following message in my Weblogic 8.1 console: May 6, 2005 5:09:08 PM CDT Warning Common BEA-000620 Forcibly releasing inactive resource [EMAIL PROTECTED] back into the pool TP_BOFA_SYS. According to BEA, there is a connection leak somewhere. Is it possible that iBatis is not properly closing a connection after obtaining it? Has anyone else come across a similar issue?
Re: Possible Connection Leak
Exactly. -Henry Ming Xue wrote: Do you mean I do not need Transaction in SqlMap at all (removing the TransactionManager tag) ? Thanks for any clarification. -Original Message- From: Henry Lu [mailto:[EMAIL PROTECTED] Sent: Monday, May 09, 2005 2:23 PM To: ibatis-user-java@incubator.apache.org Subject: Re: Possible Connection Leak No. You config JNDI in the spring.xml instead. -Henry Ming Xue wrote: Hi I am using the SpringDAO framework, basically the SqlMapDAOSupport and SqlMapTemplate, the Transaction is acturally controlled by Spring, in this case, how should I config the transaction of SqlMap, should I use External Type ? transactionManager type=EXTERNAL dataSource type=JNDI property name=DataSource value=java:/PlateauDS/ /dataSource /transactionManager Here is my DAO public class MyDAO extends SqlMapDAOSupport implements MyDAOService { public void myMethod () { getSqlMapClientTemplate().insert(insertAccount, account); } } The transaction is started in the EJB level, which calls the DAO, and a EJB may call any number of DAO to do the job, in this case, do I need to put in the SQLMap.startTransaction in the DAO code ? Thanks Ming [Ming Xue] -Original Message- *From:* Clinton Begin [mailto:[EMAIL PROTECTED] *Sent:* Monday, May 09, 2005 1:04 PM *To:* ibatis-user-java@incubator.apache.org *Subject:* Re: Possible Connection Leak Yes, the approach I suggested should be used regardless of your transaction type. Cheers, Clinton On 5/9/05, *Rafiq, Adnan* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Thanks Clinton. We are using session beans to manage transactions in our application. Moreover, since we have multiple databases involved we are using XA- drivers. Will the approach you mentioned still work in this scenario? -Original Message- *From:* Clinton Begin [mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]] *Sent:* Saturday, May 07, 2005 9:30 PM *To:* ibatis-user-java@incubator.apache.org mailto:ibatis-user-java@incubator.apache.org *Subject:* Re: Possible Connection Leak Do ALL of your SqlMap calls follow this pattern: try { sqlMap.startTransaction(); //...do work sqlMap.commitTransaction(); } finally { sqlMap.endTransaction(); } Clinton On 5/6/05, *Rafiq, Adnan* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: I am using a transaction manager type = JTA in my sql-map-config.xml file. After running the application for a while, I am getting the following message in my Weblogic 8.1 console: May 6, 2005 5:09:08 PM CDT Warning Common BEA-000620 Forcibly releasing inactive resource [EMAIL PROTECTED] back into the pool TP_BOFA_SYS. According to BEA, there is a connection leak somewhere. Is it possible that iBatis is not properly closing a connection after obtaining it? Has anyone else come across a similar issue?
DAO Exception
My code still produces these errors from this line in my daoConfig.java, mind you am just trying to get the DAO aspect to work, no sqlMap I have also test this with a standalone app (No Struts) and it worked fine I am also using the jars that came with the JPetStore Application Any help would be appreciated. Thanks daoManager = DaoManagerBuilder.buildDaoManager(reader); StandardContext[/fgcsys]: Servlet /fgcsys threw load() exception: javax.servlet.ServletException: Servlet.init() for servlet fgcsys threw exception javax.servlet.ServletException: Servlet.init() for servlet fgcsys threw exception at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:963) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3420) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3608) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579) at org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252) at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:260) at org.apache.commons.digester.Rule.end(Rule.java:276) at org.apache.commons.digester.Digester.endElement(Digester.java:1064) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1720) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667) at org.apache.crimson.parser.Parser2.parse(Parser2.java:337) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448) at org.apache.commons.digester.Digester.parse(Digester.java:1562) at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385) at org.apache.catalina.core.StandardHost.install(StandardHost.java:803) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196) at org.apache.catalina.core.StandardHost.start(StandardHost.java:738) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347) at org.apache.catalina.core.StandardService.start(StandardService.java:497) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190) at org.apache.catalina.startup.Catalina.start(Catalina.java:512) at org.apache.catalina.startup.Catalina.execute(Catalina.java:400) at org.apache.catalina.startup.Catalina.process(Catalina.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)