• 解决java.lang.NoClassDefFoundError: javax/xml/rpc/service错误的方法


    最近在做WebService项目,本地测试没有问题,打算部署到服务器上,但是部署后,访问时出现了如下图1的错误:

    解决java.lang.NoClassDefFoundError: javax/xml/rpc/service错误的方法 - Tian@SpringSide - tzj359314269
    图1
           图1报的是没有找到定义的类的错误。刷新页面有又出现了另外“新”的错误:
    解决java.lang.NoClassDefFoundError: javax/xml/rpc/service错误的方法 - Tian@SpringSide - tzj359314269
    图2
           根据图2显示,起先以为是配置出错了,导致找不到Client类,从而不能初始化该类。但是经过仔细排查后,发现端口,路径等配置并没有错误,所以非常疑惑。
          后来经过网上查找资料,发现了原因:缺少jaxrpc.jar包,这个包应该是在tomcat目录中的lib目录下。我在lib目录下查看后果然没有这个包,把这个包添加到lib,重启服务器后,正常显示,如图3:
    解决java.lang.NoClassDefFoundError: javax/xml/rpc/service错误的方法 - Tian@SpringSide - tzj359314269
    图3
          也就是说,其实图2是由图1引起的,这两个错误是同一个错误,都是由于少了jaxrpc.jar包引起的。其实这个包是依赖于axis.jar的包之一,其他类似包还有如图4所示:
    解决java.lang.NoClassDefFoundError: javax/xml/rpc/service错误的方法 - Tian@SpringSide - tzj359314269
    图4
    另外需要引起重视的是:这里报的是NoClassDefFoundError错误,而不是报ClassNotFoundException,前者是在编译阶段发生的,后者是在运行时发生的,而不是编译阶段。
     
    本错误还有另外一种解决办法:
    由于这是WebService,也有可能缺少WebService的关键包,本项目中,我的lib目录下同样缺少如图5的包:
    解决java.lang.NoClassDefFoundError: javax/xml/rpc/service错误的方法 - Tian@SpringSide - tzj359314269
    图5
     将图5中的包添加到lib目录,重启服务器后同样能解决问题。
     
     注:jar包一定要放在WEB-INF下的lib下,否则web项目不生效。
     
     
     
     
     
    以上缺少的包均可以从网上下载。
  • 相关阅读:
    数据库范式
    java String.split()用法
    1.4 IoC控制反转
    利用shrinkwrap锁定依赖版本
    清晨开启电脑自动拉取项目更新
    JS如何获取屏幕、浏览器及网页高度宽度?
    Navigator 对象,能够清楚地知道浏览器的相关信息
    iconfont 转换为图标字体
    VS code的搜索、替换与正则替换
    点九图制作方法
  • 原文地址:https://www.cnblogs.com/stsinghua/p/6418376.html
Copyright © 2020-2023  润新知