要调用外部数据接口,碰到两个问题,这里记录一下解决方式。

HTTP代理weblogic无法调用

 这里要感谢孔老湿,帮助在新环境重现了问题,爱你

1.代理工具用的Niginx   

 

2.开启代理的代码如下:

weblogic 部署 WebService CXF模式与 Cglib 冲突,http 代理认证问题

 

3.部署到weblogic 上调用时报错

 

FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received

 

4.处理方案

因为不是使用的sun 公司的jdk ,在setDomainEnv.cmd 中修改jdk 版本即可

weblogic中使用的jvm不是sun公司提供的。此时需要修改$MV_HOME\user_projects\domains..\bin\setDomainEnv.cmd(这里是windows,如果是unix应该找到setDomainEnv.sh)文件,在末尾添加:

set JAVA_OPTIONS=%JAVA_OPTIONS% -DUseSunHttpHandler=true

 

 

Webservice CXF与 CGLIB包冲突

1.简单的一比直接写一个调用端,调用服务即可

 

2.部署到旧的weblogic 上无问题,部署到新搭建的weblogic 上报错! WTF !

weblogic 部署 WebService CXF模式与 Cglib 冲突,http 代理认证问题

weblogic 部署 WebService CXF模式与 Cglib 冲突,http 代理认证问题

   网上大部分说时asm 与cglib 问题,但是我们产品早已经处理过了,cglib 的版本为2.2,不存在网上说的情况

 

3.因为两个环境不是一个镜像出来的,jdk 版本也不一致,担心是环境导致的,开始排查是否为环境问题

排查内容有:JDK 版本一致、weblogic版本一致,weblogic MiddleWare包一致、SetDomain文件一致、config文件一致,weblogic 域也都是新建的。。。。。。

 

4.找了一圈发现都没有问题,于是重新整理思路排查

  排查过程中发现,人都是被自己蠢死的,直接Terminal中使用mvn 生成树一查就好了。

  果然发现 CXF-rt--transports-http 包里 带了一个asm 的包

weblogic 部署 WebService CXF模式与 Cglib 冲突,http 代理认证问题

weblogic 部署 WebService CXF模式与 Cglib 冲突,http 代理认证问题

 

 直接在引用的时候去掉

 

weblogic 部署 WebService CXF模式与 Cglib 冲突,http 代理认证问题

weblogic 部署 WebService CXF模式与 Cglib 冲突,http 代理认证问题

 

问题解决

weblogic 部署 WebService CXF模式与 Cglib 冲突,http 代理认证问题

 

相关文章: