单点登录(四)-----遇到问题-----cas server 源码部署tomcat运行报错ClassNotFoundException: org.jasig.cas.CasEnvironmentCo
情况
cas单点登录
cas server 源码部署tomcat运行报错
把cas server的代码下载下来后使用gradle插件或者maven插件以及转化成eclipse·后导入发现部署到tomcat中会报错ClassNotFoundException。
我的是CasEnvironmentContextListener ,查了下资料 发现也有人遇到 Java.lang.ClassNotFoundException:org.jasig.cas.web.init.SafeContextLoaderListener。
严重: Error configuring application listener of class org.apache.catalina.deploy.ApplicationListener@34f14c84
java.lang.ClassNotFoundException: org.jasig.cas.CasEnvironmentContextListener
然后看了下tomcat中webapp下cas文件夹的文件发现 lib包中没有把引用的子项目加载进去。src文件中也没有子项目的编译文件。
解决方法
推荐方案二,毕竟方案一不方便调试。
方案一使用gradle命令或者maven命令在cmd中打成war包
使用gradle命令或者maven命令在cmd中打成war后再启动tomcat发现解压出来的文件夹中lib文件夹是包含需要的子项目的。
gradle项目只要.classpath文件中有
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
maven项目只要.classpath文件中有
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
在cmd中使用命令就可以进行build 得到war包,这样的war包解压出来在lib中是有子项目的jar包的。
但是war包需要手动放到tomcat的webapp路径下然后运行tomcat,很不方便,也不方便调试。
也可以在tomcat的配置文件中直接指定war包,在tomcat server.xml中,如下:
<Context path="/mango" privileged="true" reloadable="true" docBase="E:\MyEclipse_Professional_2014\GradleSpringMVCMango\build\libs\GradleSpringMVCMango-1.0.war"></Context>
这样就不需要每次都手动复制粘贴到webapp文件夹中了,直接启动tomcat即可,但还是不方便调试。
方案二添加子项目的发布引用
我们最常用的开发方式是在myeclipse中直接采取add deployment的方式,start tomcat即可。
但是cas项目采用add方式,项目依赖的jar没有放进tomcat中,进行如下设置即可。
这种情况是没对子项目的输出路径做设置导致的。
右键点击工程,属性(properties),选择deployment assembly选项,单击add按钮,如下图:
添加之后 有路径有输出包名才算正确的路径,这样再在tomcat中加载部署一次就会发现已经有缺少的子项目的编译文件。
详情可参考:
java-----遇到问题------myeclipse----发布项目到tomcat中lib文件夹没有子项目产生ClassNotFoundException错误
注意--很重要
引用的子项目的包本身不能有明显的代码错误,在myeclipse中不能带感叹号等。否则添加了引用之后还是会报找不到该class,因为这个子项目没有编译成功。
初次引入cas-server项目比较常见的需要解决的感叹号情况是
A cycle was detected in the build path of project
解决方法参考:
单点登录(六)-----遇到问题-----cas server 源码部署导入gradle后有感叹号---错误信息A cycle was detected in the build path of pr
注意
引用的子项目的包本身不能有明显的代码错误,在myeclipse中不能带感叹号等。否则添加了引用之后还是会报找不到该class,因为这个子项目没有编译成功。
单点登录(四)-----遇到问题-----cas server 源码部署tomcat运行报错ClassNotFoundException: org.jasig.cas.CasEnvironmentCo的更多相关文章
- 单点登录(五)-----遇到问题-----cas server 源码部署tomcat运行报错BeanCreationException:Error creating bean with name 's
我们在上一篇文章已经解决了把下载好的cas server源码部署到tomcat缺少子项目编辑文件或者jar包导致找不到class报错的问题 单点登录(四)-----遇到问题-----cas serve ...
- 单点登录(六)-----遇到问题-----cas server 源码部署导入gradle后有感叹号---错误信息A cycle was detected in the build path of pr
cas server 源码部署导入gradle后有感叹号---错误信息A cycle was detected in the build path of project 'cas-server-cor ...
- 单点登录(三)-----实战-----cas server 源码下载和部署
我们在上一篇文章中使用的是4.0版本的cas,4.0版本的有发布好的war包可以直接使用,那如果我们要使用更新的版本怎么办呢? 就需要下载源码自己编辑打包了. 步骤如下: 版本选择 我们在cas的gi ...
- Cas Server源码编译现场实例
最近公司有项目需要做单点登录,根据要求就写下这篇从github上下载的包到项目编译通过,再到修改原代码实现自己的特殊逻辑. 前提: java环境 tomcat环境 maven环境 MyEclipse开 ...
- 分享一个单点登录、OAuth2.0授权系统源码(SimpleSSO)
SimpleSSO 关于OAuth 2.0介绍: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 系统效果: 登录界面: 首页: 应用界面: ...
- 源码安装Apache,报错:Cannot use an external APR with the bundled APR-util
一般在第一次源码安装是没有问题的,在版本变化情况下在次源码安装可能会遇到此问题: apache2.0.x与apache2.2.x在apr有很大区别,前者为依赖公用apr,后者依赖于自身的apr.一般前 ...
- linux下 python源码包解压报错
执行下面的命令 tar -zvxf Python.3.6.5.tgz 报错 gzip: stdin: not in gzip format tar: Child returned status 1 t ...
- 关于解决ruby源码安装 gem install报错问题
因做redis集群需要安装ruby,源码安装过后gem install redis安装redis接口报错 解决方案: 确保主机安装zlib,没有安装执行 yum -y install zlib zli ...
- 源码安装Apache,报错:Cannot use an external APR with the bundled APR-util和httpd: Could not reliably determine the server's fully qualified domain name, using
一.解决APR和APR-util错误: 1.1.安装APR: [root@ganglia httpd-2.2.23]# cd srclib/apr [root@ganglia apr]# ./conf ...
随机推荐
- 【Go】Mac上安装Go
一:首先安装brew,方便管理,安装方法,终端中输入 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ins ...
- Datasets
STL-10 https://cs.stanford.edu/~acoates/stl10/ CIFAR-10 and CIFAR-100 https://www.cs.toronto.edu/~kr ...
- hive创建临时函数
add jar /home/hjl/sunwg/Lower.jar; create temporary function my_lower as ‘com.example.hive.udf.Lower ...
- JS进阶系列之原型、原型链
最近在看 JavaScript忍者秘籍 这本书的时候,再加上最近遇到的关于原型.原型链的面试题,所以萌生了要把这些知识梳理一遍的想法,所以以下是我自己对原型.原型链的看法 什么是原型 提到原型,我们可 ...
- 10.29 scrum meeting newbe软件团队工作分配
这次会议,我们主要讨论了目前阶段的主要任务与任务分配问题. 首先,通读代码,理解程序的运行方式是必不可少的环节.所以我们要求团队的所有成员通读代码.并且对于开发人员和测试人员,要求写出我们分配的各自模 ...
- 团队项目-北航MOOC系统Android客户端 NABC
北航MOOC系统Android客户端 NABC (N) Need 需求 MOOC的全名是Massive Open Online Course,被称作大型开放式网络课程.2012年,美国的顶尖大学陆续设 ...
- CS小分队第二阶段冲刺站立会议(6月1日)
昨日成果:完成了,文件图标的获取,以及代码删除获取文件的图标的功能:实现了从桌面拖动一个应用到窗体进行添加的功能: 遇到问题:获取的文件图标太小了,比较模糊:从外面拖动文件到窗体时,图标一直获取错误, ...
- sampleFactory(女娲造人)
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象. package c ...
- C#设置代码只在调试模式下执行
获取一个值,它指示调试器是否已附加到进程. 命名空间:Namespace:System.Diagnostics if (Debugger.IsAttached) { Response.Write(&q ...
- lr关联-保存数组并调用(转)
LOADRUNNER中的一个关联技巧 众所周知,在LoadRunner中,关联是一个很重要的动作,大多数的脚本在录制完成后并不能直接回放,需要通过一定的关联才能成功回放.关联的技巧有很多,这里 ...