异常:com.sun.xml.ws.transport.http.servlet.WSServletContextListener

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37848710/article/details/79665498
初学web service ,环境工具:JDK1.7、Myeclipse2014;
从一路的新建web service project 到结束一些顺利,想来写web service还是蛮简单的吗,正得意忘形的时候异常宠幸 了我,项目部署完毕后启动Tomcat直接报异常了,异常信息如下:
严重: Error configuring application listener of class [com.sun.xml.ws.transport.http.servlet.WSServletContextListener]
java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1291)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:544)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:525)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4667)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1141)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
意思就是ws监听器类没有发现,根本就是没有导入相应的jar包,百度了一下很多说法:有人说原因是少了jaxws-rt.jar包,然后就屁颠屁颠去下载jar包导入,问题来了,接下来依赖的报错越来越多,不仅仅是jaxws-rt.jar,还要有jaxb-impl.jar, streambuffer.jar, jaxb-core.jar 。。。。没完没了了。网上确实是有人加了这个jaxws-rt.jar包就行了,但是这种方法不适用于我的情况认为觉得可行了。筛选出了两种:
方法一:参考链接
工程上右键-》properties-》java build path -》 add libraries -》 选myeclipse libraries -》next 拉到最后选择最后两个库(jax-ws runtime 和 jax-ws api)。
方法二:参考链接

缺少了JAX-WS的类库,在您的应用中添加这个类库就可以了。就是找不到类,教给你一个方法选中工程右击Build path——Configure Build path——Targeted Runtimes选中中间件应用就可以。前提是你已经有类库。类找不到就会报这个异常,自己查查包引入了没。应该就这么回事,Java SE的类库有问题,工程换了路径之后要重新导入一下所需的包

但是很遗憾,这两种方法 均不适合我,所以无奈请教了我很项目组的大神娟姐,真是一语道破,解决办法如下:
首先:
工程上右键-》properties-》java build path -》 add libraries -》 选myeclipse libraries -》选择一个库(jax-ws api),说明一下这里没有方法一种所说的这个库j(ax-ws runtime ),我想最可能的原因就是myeclipse版本的问题,我的是myeclipse2014属于高版本了
然后:
同样工程上右键-》properties-》java build path -》选中刚才已经添加库(jax-ws api),然后点击右边的edit,选中该库下的所有子类库,然后确定完成即可
这里重要的两个环节配图:方便跟我一样的新手







至此结束!!!



猜你喜欢

转载自blog.csdn.net/weixin_37848710/article/details/79665498