情况

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中创建gradle web项目

【使用指南】MyEclipse部署配置(多图)

注意--很重要

引用的子项目的包本身不能有明显的代码错误,在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的更多相关文章

  1. 单点登录(五)-----遇到问题-----cas server 源码部署tomcat运行报错BeanCreationException:Error creating bean with name 's

    我们在上一篇文章已经解决了把下载好的cas server源码部署到tomcat缺少子项目编辑文件或者jar包导致找不到class报错的问题 单点登录(四)-----遇到问题-----cas serve ...

  2. 单点登录(六)-----遇到问题-----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 ...

  3. 单点登录(三)-----实战-----cas server 源码下载和部署

    我们在上一篇文章中使用的是4.0版本的cas,4.0版本的有发布好的war包可以直接使用,那如果我们要使用更新的版本怎么办呢? 就需要下载源码自己编辑打包了. 步骤如下: 版本选择 我们在cas的gi ...

  4. Cas Server源码编译现场实例

    最近公司有项目需要做单点登录,根据要求就写下这篇从github上下载的包到项目编译通过,再到修改原代码实现自己的特殊逻辑. 前提: java环境 tomcat环境 maven环境 MyEclipse开 ...

  5. 分享一个单点登录、OAuth2.0授权系统源码(SimpleSSO)

    SimpleSSO 关于OAuth 2.0介绍: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 系统效果: 登录界面: 首页: 应用界面: ...

  6. 源码安装Apache,报错:Cannot use an external APR with the bundled APR-util

    一般在第一次源码安装是没有问题的,在版本变化情况下在次源码安装可能会遇到此问题: apache2.0.x与apache2.2.x在apr有很大区别,前者为依赖公用apr,后者依赖于自身的apr.一般前 ...

  7. linux下 python源码包解压报错

    执行下面的命令 tar -zvxf Python.3.6.5.tgz 报错 gzip: stdin: not in gzip format tar: Child returned status 1 t ...

  8. 关于解决ruby源码安装 gem install报错问题

    因做redis集群需要安装ruby,源码安装过后gem install redis安装redis接口报错 解决方案: 确保主机安装zlib,没有安装执行 yum -y install zlib zli ...

  9. 源码安装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 ...

随机推荐

  1. 【Go】Mac上安装Go

    一:首先安装brew,方便管理,安装方法,终端中输入 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ins ...

  2. Datasets

    STL-10 https://cs.stanford.edu/~acoates/stl10/ CIFAR-10 and CIFAR-100 https://www.cs.toronto.edu/~kr ...

  3. hive创建临时函数

    add jar /home/hjl/sunwg/Lower.jar; create temporary function my_lower as ‘com.example.hive.udf.Lower ...

  4. JS进阶系列之原型、原型链

    最近在看 JavaScript忍者秘籍 这本书的时候,再加上最近遇到的关于原型.原型链的面试题,所以萌生了要把这些知识梳理一遍的想法,所以以下是我自己对原型.原型链的看法 什么是原型 提到原型,我们可 ...

  5. 10.29 scrum meeting newbe软件团队工作分配

    这次会议,我们主要讨论了目前阶段的主要任务与任务分配问题. 首先,通读代码,理解程序的运行方式是必不可少的环节.所以我们要求团队的所有成员通读代码.并且对于开发人员和测试人员,要求写出我们分配的各自模 ...

  6. 团队项目-北航MOOC系统Android客户端 NABC

    北航MOOC系统Android客户端 NABC (N) Need 需求 MOOC的全名是Massive Open Online Course,被称作大型开放式网络课程.2012年,美国的顶尖大学陆续设 ...

  7. CS小分队第二阶段冲刺站立会议(6月1日)

    昨日成果:完成了,文件图标的获取,以及代码删除获取文件的图标的功能:实现了从桌面拖动一个应用到窗体进行添加的功能: 遇到问题:获取的文件图标太小了,比较模糊:从外面拖动文件到窗体时,图标一直获取错误, ...

  8. sampleFactory(女娲造人)

    使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象. package c ...

  9. C#设置代码只在调试模式下执行

    获取一个值,它指示调试器是否已附加到进程. 命名空间:Namespace:System.Diagnostics if (Debugger.IsAttached) { Response.Write(&q ...

  10. lr关联-保存数组并调用(转)

    LOADRUNNER中的一个关联技巧     众所周知,在LoadRunner中,关联是一个很重要的动作,大多数的脚本在录制完成后并不能直接回放,需要通过一定的关联才能成功回放.关联的技巧有很多,这里 ...