要调用外部数据接口,碰到两个问题,这里记录一下解决方式。
HTTP代理weblogic无法调用
这里要感谢孔老湿,帮助在新环境重现了问题,爱你
1.代理工具用的Niginx
2.开启代理的代码如下:
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 !
网上大部分说时asm 与cglib 问题,但是我们产品早已经处理过了,cglib 的版本为2.2,不存在网上说的情况
3.因为两个环境不是一个镜像出来的,jdk 版本也不一致,担心是环境导致的,开始排查是否为环境问题
排查内容有:JDK 版本一致、weblogic版本一致,weblogic MiddleWare包一致、SetDomain文件一致、config文件一致,weblogic 域也都是新建的。。。。。。
4.找了一圈发现都没有问题,于是重新整理思路排查
排查过程中发现,人都是被自己蠢死的,直接Terminal中使用mvn 生成树一查就好了。
果然发现 CXF-rt--transports-http 包里 带了一个asm 的包
直接在引用的时候去掉
问题解决