REST+CXF接口类工程weblogic部署问题总结

REST+CXF接口类工程weblogic部署问题总结

在本地开发一直都没有问题的接口工程,在tomcat上面运行也没有问题,转到weblogic上部署存在诸多问题,在此记录一下,以便后面可以查询。

解决问题的思路:本地没问题,部署到weblogic上就存在问题,就从jar冲突的方面解决,或者是jar版本使用的问题上解决,不要发散,否则越走越远。
1、Caused by : java.lang.IllegalAccessError: tried to access method org.apache.ibatis.type.JdbcType.forCode Lorg.apache.ibatis.type.JdbcType from class org.apache.ibatis.executor.resultset.ResultSetWrapper

这个错误的意思在mybatis中进行数据类型映射的时候找不到相关的JDBCTYPE,这是也就是数据库类型映射类型找不到。本地是可以运行的所以,映射是存在的,肯定是jar冲突问题,果然在代码中搜索,有一个公司jar中包含同样的JdbcType类,跟mybatis中的对比,发现少了不少内容。所以果断删除jar,重新部署。

2、启动到后面,报错,ClassNotFound org.apache.abdera.model.element找不到,没有去下载abdera-core-1.1.3.jar 这个包,只是删除了wsdl4j-1.6.3.jar 这个包(删除了这个包,没有解决这个问题,后面3,4 执行后,还会报错,在此基础上增加了abdera-core-1.1.3.jar 和abdera-i18n-1.1.3.jar ,解决)

3、org.apache.cxf.aegis.type.aegistype 找不到
下载了cxf-rt-databinding-aegis-2.5.3.jar 添加到lib下

4、org.apache.cxf.jaxrs.json.basic.JsonMapObject 找不到
下载cxf-rt-rs-json-basic-3.0.9.jar 添加到lib下

5、A resource model hasambiguous (sub-) resource method for Http method get and input mime-types as defined by “@Consumes” and “@Produces” annotations at java methods A 类, B类 at matching regular expression /xxx,These two methods produces and consumes exactly the same mime-types and therefore

这个问题是由于@Produces 中(“application/xml”)与@XmlRootElement 两个里面声明中存在相同的方法名称造成。
这个是自己增加的包,删掉相同的名方法或者是改个名称。

以上问题解决。

昨天也试了很多其他的方法,

增加weblogic.xml到webinfo下面,优先加载web包中的lib包

<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>//优先加载web工程中的jar包
</container-descriptor>
</weblogic-web-app>

或者是

<container-descriptor>
 <prefer-application-packages>
 <package-name>org.apache.lang.*</package-name>
 </prefer-application-packages>
</container-descriptor>
</weblogic-web-app>

也删除了工程中的几个jar包,如:

后来去掉这种配置也没问题。

综上,遇到问题,还是从问题出发,不要发散,否则离成功解决问题会越来越远。

分享一下,在本站看到的可以打印jar加载的方式:

jdk1.8.0_221home下面,找到src.zip,找到java.util.jar.JarFile,修改下面内容后 替换 jdk1.8.0_221\jre\lib\rt.jar。
public JarFile(File file, boolean verify, int mode) throws IOException {
super(file, mode);
system.out.println(“jarfilename:-----:”+file.getName());
this.verify = verify;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值