单点登录(五)-----遇到问题-----cas server 源码部署tomcat运行报错BeanCreationException:Error creating bean with name 's
2017-01-31 18:44
316 查看
我们在上一篇文章已经解决了把下载好的cas server源码部署到tomcat缺少子项目编辑文件或者jar包导致找不到class报错的问题
单点登录(四)-----遇到问题-----cas server 源码部署tomcat运行报错ClassNotFoundException: org.jasig.cas.CasEnvironmentCo
但是运行时还是报错了
BeanCreationException:Error creating bean with name
严重: Exception sending context initialized event to listener instance of class org.jasig.cas.CasEnvironmentContextListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serviceThemeResolver': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'serviceThemeResolverSupportedBrowsers' is defined
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:311)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1218)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:778)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1671)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'serviceThemeResolverSupportedBrowsers' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:704)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:512)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:486)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:615)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:178)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308)
... 26 more
对比了一下gradle命令在cmd的打包出来的war包(这个是能正常运行的)解压出来的文件。
ps:这是一种很好的排查cas项目部署错误的方法,能找出是否多引入了包或者少引入了包。
发现我们虽然把子项目的编译文件成功放到了classes文件夹中
但是也加入了很多子项目中xml。
导致了一些多余的引用所以报错了。
解决方法有两种
一种是在子项目的deployment assembly选项作配置,只允许java文件部署到父项目中。但是这种方式很麻烦,每个子项目都需要仔细配置。
我们推荐第二种方法
方法二是让子项目在父项目部署发布时以jar包的方式放入lib文件夹中,而不是源码编辑文件进入classes文件夹。
右键->properties->MyEclipse->Deployement Assembly
在下方点开Merged deployment of modules
将默认的Enable merged deployment of Utility and EJB modules复选框勾去掉即可
他下面的提示信息其实也很明显,如果勾选的话会将你所引入的工程合并到WEB-INFO/classes目录下
验证方法是否生效:部署时父项目显示Exploded,而引入的子项目是:packaged,在到工程的lib目录下面去查看就可以看到构建好的jar包了。
这说明设置生效。
去掉勾之后配置的地方都会变成disabled了。
如果我们不是要把所有的子项目都这样处理成jar包引入,而是有选择性的一些放入jar包可以不去掉勾,而是在merged deployment里配置,on是引入的工程合并到WEB-INFO/classes目录下,能看到编译文件class,off是打成jar包,放入lib。
打成jar包的子项目的配置文件xml不会影响到父项目。
单点登录(四)-----遇到问题-----cas server 源码部署tomcat运行报错ClassNotFoundException: org.jasig.cas.CasEnvironmentCo
但是运行时还是报错了
BeanCreationException:Error creating bean with name
严重: Exception sending context initialized event to listener instance of class org.jasig.cas.CasEnvironmentContextListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serviceThemeResolver': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'serviceThemeResolverSupportedBrowsers' is defined
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:311)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1218)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:778)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1671)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'serviceThemeResolverSupportedBrowsers' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:704)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:512)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:486)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:615)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:178)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308)
... 26 more
对比了一下gradle命令在cmd的打包出来的war包(这个是能正常运行的)解压出来的文件。
ps:这是一种很好的排查cas项目部署错误的方法,能找出是否多引入了包或者少引入了包。
发现我们虽然把子项目的编译文件成功放到了classes文件夹中
但是也加入了很多子项目中xml。
导致了一些多余的引用所以报错了。
解决方法有两种
一种是在子项目的deployment assembly选项作配置,只允许java文件部署到父项目中。但是这种方式很麻烦,每个子项目都需要仔细配置。
我们推荐第二种方法
方法二是让子项目在父项目部署发布时以jar包的方式放入lib文件夹中,而不是源码编辑文件进入classes文件夹。
右键->properties->MyEclipse->Deployement Assembly
在下方点开Merged deployment of modules
将默认的Enable merged deployment of Utility and EJB modules复选框勾去掉即可
选中Enable project specific settings
不要选中Enable merged deployment of Utility and EJB modules.
他下面的提示信息其实也很明显,如果勾选的话会将你所引入的工程合并到WEB-INFO/classes目录下
验证方法是否生效:部署时父项目显示Exploded,而引入的子项目是:packaged,在到工程的lib目录下面去查看就可以看到构建好的jar包了。
这说明设置生效。
去掉勾之后配置的地方都会变成disabled了。
如果我们不是要把所有的子项目都这样处理成jar包引入,而是有选择性的一些放入jar包可以不去掉勾,而是在merged deployment里配置,on是引入的工程合并到WEB-INFO/classes目录下,能看到编译文件class,off是打成jar包,放入lib。
打成jar包的子项目的配置文件xml不会影响到父项目。
相关文章推荐
- 单点登录(六)-----遇到问题-----cas server 源码部署导入gradle后有感叹号---错误信息A cycle was detected in the build path of pr
- 单点登录(五)-----遇到问题-----cas server 源码部署tomcat运行报错BeanCreationException:Error creating bean with name 's
- 单点登录(六)-----遇到问题-----cas server 源码部署导入gradle后有感叹号---错误信息A cycle was detected in the build path of pr
- 单点登录(四)-----遇到问题-----cas server 源码部署tomcat运行报错ClassNotFoundException: org.jasig.cas.CasEnvironmentCo
- 单点登录(四)-----遇到问题-----cas server 源码部署tomcat运行报错ClassNotFoundException: org.jasig.cas.CasEnvironmentCo
- 单点登录(三)-----实战-----cas server 源码下载和部署
- Idea部署Openfire源码时遇到的一些问题
- 单点登录--三---实战-----cas server 源码下载和部署
- 单点登录(三)-----实战-----cas server 源码下载和部署
- 通过源码安装部署keystone环境遇到的一些问题
- 在websphere上部署应用遇到的问题
- 为Reporting Service部署自定义程序集可能遇到的问题
- 移植OSBench.exe源码到BSP遇到的问题
- SQL2005,windows身份验证登录后遇到的权限问题
- IIS部署遇到的文件目录权限问题
- 部署AAA时,遇到的一些问题
- MyEclipse中用Tomcat部署项目时遇到的问题2:Document base D:/Tomcat 5.5/server/webapps/ admin does not exist or is not a readable directory
- 部署Windows 2003 Cluster遇到的问题
- 在IIS中部署WCF中遇到的问题
- tcpmp的源码编译遇到的问题