[Building Sakai] jdbc spring slowly

yolima u yolimita.uribe at gmail.com
Fri May 29 15:29:29 PDT 2009


hi, well all this things are not working

i have my class MetoGWDao (my bean), and i'm defining my bean in the file
applicationContext.xml
With this files my tool works, but for the insert, delete and update, sakai
takes like 3 minutes for to do this updates in the database.

So, I changed my bean definition to spring-hibernate.xml like Steve told me,
but it generated a error:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Failed to import bean definitions from relative
location [spring-hibernate.xml]
Offending resource: file
[/opt/tomcat/components/metodologiagrw-pack/WEB-INF/components.xml]; nested
exception is
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Bean class
[org.sakaiproject.metodologiagrw.tool.MetoGWDao] not found
Offending resource: file
[/opt/tomcat/components/metodologiagrw-pack/WEB-INF/spring-hibernate.xml]
Bean 'MetoGWDao'; nested exception is java.lang.ClassNotFoundException:
org.sakaiproject.metodologiagrw.tool.MetoGWDao (2009-05-29 17:09:01,463
main_org.sakaiproject.util.ComponentsLoader)
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Failed to import bean definitions from relative
location [spring-hibernate.xml]
Offending resource: file
[/opt/tomcat/components/metodologiagrw-pack/WEB-INF/components.xml]; nested
exception is
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Bean class
[org.sakaiproject.metodologiagrw.tool.MetoGWDao] not found
Offending resource: file
[/opt/tomcat/components/metodologiagrw-pack/WEB-INF/spring-hibernate.xml]
Bean 'MetoGWDao'; nested exception is java.lang.ClassNotFoundException:
org.sakaiproject.metodologiagrw.tool.MetoGWDao
Caused by: 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Bean class
[org.sakaiproject.metodologiagrw.tool.MetoGWDao] not found
Offending resource: file
[/opt/tomcat/components/metodologiagrw-pack/WEB-INF/spring-hibernate.xml]
Bean 'MetoGWDao'; nested exception is java.lang.ClassNotFoundException:
org.sakaiproject.metodologiagrw.tool.MetoGWDao
Caused by: 
java.lang.ClassNotFoundException:
org.sakaiproject.metodologiagrw.tool.MetoGWDao
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
	at org.springframework.util.ClassUtils.forName(ClassUtils.java:201)
	at
org.springframework.beans.factory.support.BeanDefinitionReaderUtils.createBeanDefinition(BeanDefinitionReaderUtils.java:93)
	at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:405)
	at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:341)
	at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:310)
	at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.processBeanDefinition(DefaultBeanDefinitionDocumentReader.java:235)
	at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:151)
	at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:130)
	at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
	at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
	at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
	at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
	at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
	at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:185)
	at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:145)
	at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:130)
	at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
	at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
	at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
	at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
	at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
	at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
	at
org.sakaiproject.util.ComponentsLoader.loadComponentPackage(ComponentsLoader.java:187)
	at org.sakaiproject.util.ComponentsLoader.load(ComponentsLoader.java:109)
	at
org.sakaiproject.component.impl.SpringCompMgr.loadComponents(SpringCompMgr.java:545)
	at
org.sakaiproject.component.impl.SpringCompMgr.init(SpringCompMgr.java:102)
	at
org.sakaiproject.component.cover.ComponentManager.getInstance(ComponentManager.java:62)
	at
org.sakaiproject.component.cover.ComponentManager.get(ComponentManager.java:71)
	at
org.sakaiproject.component.cover.ServerConfigurationService.getInstance(ServerConfigurationService.java:53)
	at
org.sakaiproject.component.cover.ServerConfigurationService.getStrings(ServerConfigurationService.java:206)
	at org.sakaiproject.dav.DavServlet.init(DavServlet.java:521)
	at javax.servlet.GenericServlet.init(GenericServlet.java:212)
	at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
	at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
	at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
	at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
	at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
	at
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
	at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	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:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

if i define my bean into components.xml, the tool generate another error:
org.sakaiproject.portal.api.PortalHandlerException:
org.sakaiproject.tool.api.ToolException: No bean named 'MetoGWDao' is
defined

So, i don't know if i'm doing something wrong with my component.xml, or
spring-hibernate.xml, so here are my files:

http://www.nabble.com/file/p23787976/components.xml components.xml 

http://www.nabble.com/file/p23787976/sakai-hibernate.xml sakai-hibernate.xml 

http://www.nabble.com/file/p23787976/spring-hibernate.xml
spring-hibernate.xml 

http://www.nabble.com/file/p23787976/applicationContext.xml
applicationContext.xml 

something is missing in components.xml or spring-hibernate.xml, or
sakai-hibernate.xml for to do that my bean in aplicacttionContext.xml works
ok?

or what i have to do?
:(
thanks, 



Aaron Zeckoski wrote:
> 
> Normally spring jdbc will do a commit for each update/insert/delete
> that you run using the jdbctemplate. If you are doing a lot of these
> without a transactional wrapper then it can be a little bit expensive
> (though not typically the amount of time you are talking about).
> 
> I recommend you try using the spring JdbcDaoSupport class and take a
> look at the example code here:
> http://bugs.sakaiproject.org/confluence/display/BOOT/Spring+JDBC+Info
> 
> It may help to clean up all the empty try/finally blocks in your code
> for readability when pasting it here. You also might want to send
> along your spring configuration file along with your code.
> Hope this helps
> :-)
> -AZ
> 
> 
> On Wed, May 27, 2009 at 1:54 AM, yolima u <yolimita.uribe at gmail.com>
> wrote:
>>
>> hi all,
>>  i'm developing  a tool in sakai using  jdbc spring for the connection to
>> the data base
>> i'm working with a bean where i create all the functions for the data
>> base:
>>
>> public class MetGwBean {
>>
>>        private DataSource dataSource;
>>
>>        public void setDataSource(DataSource dataSource) {
>>                this.dataSource = dataSource;
>>        }
>>
>>
>>
>>        public void Insertar(String sql,Object[] obj)throws SQLException{
>>
>>
>>           JdbcTemplate sel = new JdbcTemplate(dataSource);
>>
>>           try {
>>                   sel.update(sql, obj);
>>                   // do things with your connection (select, insert,
>> delete, etc.)
>>           } finally {
>>
>>           }
>>        }
>>
>>        public List SelectObjetos(String sql,Object[] obj)throws
>> SQLException{
>>
>>                JdbcTemplate sel = new JdbcTemplate(dataSource);
>>                try{
>>                        return sel.queryForList(sql, obj, String.class);
>>                        }finally{
>>
>>                        }
>>        }
>>
>>        public List Selectsolo(String sql)throws SQLException{
>>
>>                JdbcTemplate sel = new JdbcTemplate(dataSource);
>>                try{
>>                        return sel.queryForList(sql,String.class);
>>                        }finally{
>>
>>                        }
>>        }
>>
>>        public void Borrar(String sql,Object[] obj)throws SQLException{
>>
>>
>>                   JdbcTemplate sel = new JdbcTemplate(dataSource);
>>
>>                   try {
>>                           sel.update(sql, obj);
>>                           // do things with your connection (select,
>> insert, delete, etc.)
>>                   } finally {
>>
>>                   }
>>
>>        }
>>
>>        public void Actualizar(String sql,Object[] obj)throws
>> SQLException{
>>
>>
>>                   JdbcTemplate sel = new JdbcTemplate(dataSource);
>>
>>                   try {
>>                           sel.update(sql, obj);
>>                           // do things with your connection (select,
>> insert, delete, etc.)
>>                   } finally {
>>
>>                   }
>>
>>        }
>>
>>        public String Selectid(String sql,Object[] obj)throws
>> SQLException{
>>
>>                JdbcTemplate sel = new JdbcTemplate(dataSource);
>>                try{
>>                        return (String)sel.queryForObject(sql, obj,
>> String.class);
>>                        }
>>                finally{
>>
>>                        }
>>        }
>>
>>        public int Selectint(String sql,Object[] obj)throws SQLException{
>>
>>                JdbcTemplate sel = new JdbcTemplate(dataSource);
>>                try{
>>                        return sel.queryForInt(sql, obj);
>>                        }
>>                finally{
>>
>>                        }
>>        }
>> }
>>
>>
>>
>> later i call this functions in a jsp page, for example:
>>
>>
>>
>> if (request.getParameter("guardar")!=null)
>>        {
>>                if (request.getParameter("textarea")!=null)
>>                {
>>                        objgen.setProyecto(bean2.getCurrentSiteId());//id
>> del proyecto
>>                        String
>> idobgen=bean.Selectid(objgen.SqlObjId(),objgen.ObjetoBuscar(objgen));//buscar
>> el id del obj general
>>                      
>>  objesp.setObjgeneral(Integer.parseInt(idobgen));//id de obj general en
>> obj esp
>>                      
>>  objesp.setdescObjetivo(request.getParameter("textarea"));
>>                        objesp.setAutor(bean2.getCurrentUserId());
>>                        objesp.setestado("en definicion");
>>                        objesp.setprioridad(0);
>>                      
>>  bean.Insertar(objesp.SqlInsertar(),objesp.ObjetoInsertar(objesp));
>>                        response.sendRedirect("objetivos_esp.jsp");
>>                        return;
>>                }
>>        }
>>
>> the problem is that the tool is fast for to do the select, but the tool
>> takes so much time for to do the inserts, like 3 to 4 minutes.
>>
>> and in some jsp pages i need show data of the data base that i just
>> insert
>> to the DB, but how the tool does this so slowly, the jsp page can't show
>> this data.
>>
>> why does the tool do the insert to slowly?
>> what can i do for do this more fast?
>>
>> --
>> View this message in context:
>> http://www.nabble.com/jdbc-spring-slowly-tp23734131p23734131.html
>> Sent from the Sakai - Development mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> sakai-dev mailing list
>> sakai-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>
>> TO UNSUBSCRIBE: send email to
>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>> "unsubscribe"
>>
> 
> 
> 
> -- 
> Aaron Zeckoski (aaronz at vt.edu)
> Senior Research Engineer - CARET - Cambridge University
> [http://bugs.sakaiproject.org/confluence/display/~aaronz/]
> Sakai Fellow - [http://aaronz-sakai.blogspot.com/]
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
> 
> TO UNSUBSCRIBE: send email to
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
> "unsubscribe"
> 

-- 
View this message in context: http://www.nabble.com/jdbc-spring-slowly-tp23734131p23787976.html
Sent from the Sakai - Development mailing list archive at Nabble.com.



More information about the sakai-dev mailing list