tomcat 部署运行项目报illegal access错误

来源:互联网 发布:淘宝客服兼职工作 编辑:程序博客网 时间:2024/06/05 10:02

今天部署了一个项目到tomcat上,原本以为会很顺利,结果没想到会遇到illegal access错误 折腾了好久还是没好 ,就直接去百度,搜索到一个解决办法但并不适用我这种情况,如下:

解决方法是:修改tomcat目录下conf文件夹下的server.xml, 在<Host>标签添加子元素找到<Context>标签,把reloadble的属性值设为:reloadable="false"。


<Context>代表了运行在<Host>上的单个Web应用,一个<Host>可以有多个< Context>元素,每个Web应用必须有唯一的URL路径,这个URL路径在<Context>中的属性path中设定。  
<Context path="/helloApp" docBase="helloApp" debug="0" reloadable="true"/>   
<Context>元素的属性:  
path:指定访问该Web应用的URL入口。  
docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性的相对路径,如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。  
reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用
 ,也就是热部署 有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发存阶段将reloadable设为false。

因此我查看了tomcat的日志,里面清楚写着noClassFoundException,该类为阿里大鱼短信服务的一个jar包(aliyun-java-sdk-core-3.3.1.jar)中的类,

但是该jar包明明就用maven添加到项目了啊(本地项目能运行成功,上传到服务器就不行),于是我便将打包好的war包解压查看里面的jar包,果然没有该jar包,

很费解,但是没办法,我就去官网下载了该jar包,直接导入项目,并注释掉pom.xml中相关代码,然后使用eclipse直接打war包,上传到服务器,bingo!

不过需要注意的是

1.maven项目直接导入jar包可能会使mvn clean package命令打包失败,所以事后需要将相关jar包添加到本地仓库,通过配置pom.xml来引入jar包。

2.你可以通过日志来了解你的情况是否和我一样。

还有最后关注一点:看日志,明确报错原因,才是找到解决办法的最佳途径!

阅读全文
0 0