spring的问题解决

有个问题折腾了3天,终于解决了,现在将解决过程分享出来,谢谢各位大神的帮助啊。

[5/6/14 21:42:37:633 CST] 0000000d webapp        E com.ibm.ws.webcontainer.webapp.WebApp commonInitializationFinally SRVE0266E: Error occured while initializing servlets: {0}
                                 javax.servlet.ServletException: SRVE0207E: Uncaught initialization exception created by servlet
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:399)
	at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(ServletWrapper.java:1360)
	at com.ibm.ws.webcontainer.webapp.WebApp.doLoadOnStartupActions(WebApp.java:611)
	at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:580)
	at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:421)
	at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
	at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)
	at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)
	at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)
	at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:422)
	at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:714)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1162)
	at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1369)
	at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)
	at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:967)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:768)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2155)
	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:445)
	at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:388)
	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:116)
	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:994)
	at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:496)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1691)
Caused by: java.lang.NoClassDefFoundError: com.rionlirf.grlc.bp.service.sqlmap.SqlMap
	at java.lang.Class.getDeclaredFieldsImpl(Native Method)
	at java.lang.Class.getDeclaredFields(Class.java:607)
	at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:374)
	at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(PersistenceAnnotationBeanPostProcessor.java:322)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:844)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:498)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
	at com.rionlirf.grlc.bp.channel.http.MainServlet.createWebApplicationContext(SourceFile:1014)
	at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:666)
	at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:519)
	at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:460)
	at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
	at javax.servlet.GenericServlet.init(GenericServlet.java:161)
	at com.rionlirf.grlc.bp.channel.http.MainServlet.init(SourceFile:706)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:337)
	... 24 more
Caused by: java.lang.ClassNotFoundException: com.rionlirf.grlc.bp.service.sqlmap.SqlMap
	at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
	at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:204)
	at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:688)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:667)
	at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:119)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:650)
	... 46 more

解决办法是:

 将使用到这个bean增加 lazy-init="true"


2. 学习到的知识有:

  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />

代替 <property name="sqlSessionFactory" ref="sqlSessionFactory" />


 一定要注意 value 和 ref的区别。

 参考的一篇文章:

axe专栏 《Spring+mybatis多数据源配置》

spring 3.0.6使用


3. maven的发布确实很好,避免了手工修改配置文件,从而在不同环境下进行修改配置文件,打包,打包命令也比较简单,分层非常清晰

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值