2 dr copper Dr_Copper 于 2017.01.03 21:06 提问

Tomcat部署war包后,运行时出现如下错误

一月 03, 2017 8:38:02 下午 org.apache.catalina.core.ContainerBase addChildInternal
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/save]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: Lweka/classifiers/Classifier;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:139)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:417)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:891)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5522)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 10 more
Caused by: java.lang.ClassNotFoundException: weka.classifiers.Classifier
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
... 24 more

一月 03, 2017 8:38:02 下午 org.apache.catalina.startup.HostConfig deployWAR
严重: Error deploying web application archive E:\apache-tomcat-7.0.73-windows-x64\apache-tomcat-7.0.73\webapps\save.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/save]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:903)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

            有没有人能告诉我这是哪里出了问题

3个回答

engchina
engchina   Rxr 2017.01.04 08:24
已采纳

Caused by: java.lang.ClassNotFoundException: weka.classifiers.Classifier

解压缩你的war包(把war改为rar,就能解压缩了),看看包含上面class的jar在不在war包里面。

engchina
engchina 回复Dr_Copper: tomcat执行时调用tomcat\lib下的jar和你发布的war里面的jar,跟你IDE里面buildpath无关
一年多之前 回复
Dr_Copper
Dr_Copper 的确是这样的问题,我把weka.jar复制到lib里面后就不报错了,但是我想问一下问什么我在程序的buildpath里面已经添加了相关的jar,在运行的时候依然报错呢?
一年多之前 回复
sun1021873926
sun1021873926   Ds   Rxr 2017.01.03 22:11

没有找到抛出的那个方法,应该是该方法所在包依赖的版本问题。

ITzhangdaopin
ITzhangdaopin   2017.01.04 08:37

应该是你的jar有问题,再检查下你的jar看是不是哪里不对

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
tomcat部署war包步骤及出现的问题和解决方法
第一步:   配置环境:安装jdk、tomcat以及它们的环境配置,这个比较简单,就不多说了。   第二步:   将需要部署的项目打成war包,将war包放在tomcat的webapps目录下,并且将项目中需要用到的包放在tomcat的lib目录下。 第三步:   启动tomcat,然后tomcat就会自动解压war包。 以上三步就是tomcat部署项目的流程。 但
war包发布到tomcat中遇到的问题
问题描述 运维人员操作过程 问题原因 tomcat查找应用的Context次序 解决方案问题描述 war包发布到tomcat中遇到报数据源相关的错误 运维人员操作过程 将war包放到tomcat下/webapps中 启动tomcat,tomcat自动解压war包 运维人员手动改展开后的目录中的context.xml 问题原因tomcat查找应用的Context次序 t
tomcat部署war包不成功解决方法
一、利用Tomcat自动部署(直接将项目扔到tomcat下的webapps下) 这种方式很简单,但今天我尝试时,本地服务器可以成功(tomcat不重启情况下添加war包可以自动部署),但是远程服务器失败。 想了想,决定使用控制台进行部署;(就是访问tomcat跟路径,比如localhost:8080/) 但是点击箭头部分时,需要输入账号名密码,点击取消,然后就跳转到如下页面: 这个页
tomcat打好war包以后出现的页面乱码BUG解决思路
    刚开始的时候是一脸懵逼的看着这个让我蛋疼的BUG,说不是前端的问题吧,又确实是前端乱码了,我复查了N次代码发现还是找不到,最后只能一项一项排查过来,下面列个表:        问题1:页面编码有不是utf-8,     排除:一个一个校对过,所有写好的页面都看过        问题2:meta标签问题,未指定UTF-8编码格式;     排除:确认加过        问题3:tomcat打...
tomcat中部署war文件,通过输入ip访问
整合网上乱七八糟的的说明,屏蔽互相转帖,最简单易用的配置说明,亲测通过
IDEA打包war部署到tomcat 404错误(tomcat配置正确)
IDEA打包war部署到tomcat 404错误(tomcat配置正确)此问题状况可能满足以下条件的1.本地使用gradle bootRun后访问地址正常 2.部署到tomcat后访问接口地址出现404错误 3.在tomcat项目中新建index.html可以访问解决方案1.gradle首先确认满足以下条件 buildscript { repositories { mav
Tomcat项目部署成功,运行时404报错排错
1、原先用的是jetty,在配置jetty时将web目录移至src目录下,导致tomcat启动时无法找到要发布的web资源。解决办法:将web文件夹移出src目录,即和src目录同级。2、无意中修改了web文件夹的名字,却没有修改web根目录路径中的文件名,导致tomcat无法找到文件夹。解决办法:更改tomcat访问的根目录路径。
eclipse生成war包,部署在tomcat上,报错404
1。解决方案,配置tomcat的server.xml在host节点下配置: 2.再次启动,如果报错,请移步tomcat的log文件,查看具体原因,我的再次报错原因为:java.lang.OutOfMemoryError: Javaheap space. ok,调大tomcat的catalina.bat的jvm启动参数:在这个文件的最顶部加入,例如: set JAVA_OPTS=-Xm
tomcat部署war包,jar包
在tomcat根目录下部署war包,通过http://ip:port的方式访问 网上说的方法很多,这里记录一下自己的经过实践检验的一种方法。 1、先去tomcat/conf/server.xml里 有一个HOST标签,有个参数appBase,表示你的应用应该部署在什么位置。例如下面写的是webapps,那就在webapps/ROOT/路径下解压你的war包。如果appBase=XXX,那么就...
打包war包部署到Tomcat。调用接口时,pad端提示:连接服务器异常。但后台无任何异常抛出
解决方法:将war部署在开发环境的tomcat下,通过Myeclipse启动tomcat,控制台会打印出异常信息