情况

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. 在HTML中引用JavaScript中的变量

    和上次的代码几乎一样,但这次是引用已经写好的变量.主要功能和用法如下: document对象的getElementId方法得到HTML元素. HTML元素的value属性可以用来设置变量的值. 02. ...

  2. k8s踩坑记第2篇--3个IP折磨人的故事

    例子来源于<Kubernetes实践指南>一书.问题依然没有解决,求助大神. 测试环境 Centos 7.0 docker 1.13.1 kubectl v1.5.2 etcd 3.2.1 ...

  3. 第五章 if语句

    5.2条件测试 使用==判断相当: 使用!=判断不相等: 每条if语句的核心都是一个值为Tre或False的表达式,这种表达式被称为条件测试,如果条件测试的值为Ture,则执行紧跟在if语句后面的代码 ...

  4. codeforces 1140E Palindrome-less Arrays

    题目链接:http://codeforces.com/contest/1140/problem/E 题目大意: 如果一个数组的存在一个奇数长的回文就不好. 不是不好的数组是好的. 你可以把-1用1到k ...

  5. 三羊献瑞:dfs / next_permutation()

    三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉  +   三 羊 献 瑞-------------------   三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的汉字代 ...

  6. Nginx 配置优化

    一.开启Gzip 1.参数 gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_comp_level 2;gzip_types text/plain ...

  7. 前端_JQuery

    使用参考:http://jquery.cuishifeng.cn/ 目录 jQuery是什么 jQuery对象 寻找元素(选择器和筛选器) 选择器 表单属性选择器 筛选器 操作元素(属性.css.文档 ...

  8. 使用sass与compass合并雪碧图(二)

    上一篇文章介绍了怎样使用compass合并雪碧图,生成的icons.css文件中单位是px,PC端可以直接在html文件中使用,但在移动端,我们需要根据不同分辨率的屏幕,来缩放图片大小,显然使用px单 ...

  9. jdbc连接获取表名称

    1,Class.forName可以替换为mysql之类其他的数据库驱动 public Connection connect(String url,String username,String pw, ...

  10. Daily Scrumming* 2015.10.27(Day 8)

    一.总体情况总结 今日项目总结: 前后端同一了API设计以及API权限认证.用户状态保存的开发方案 API以及后端模型已经开始开发,前端UEditor开始学习,本周任务有良好的起步 前后端完成分工,后 ...