笔者在weblogic中运行一个应用,按照SDK文档中写的代码,识别图像的logo,几乎全照抄,并没有什么创新,但是自己写main方法测试类,程序好使,能够识别logo,但是一旦程序在weblogic里面整体运行,就不好使了。百度返回这个{“error_code”:“SDK108”,“error_msg”:“connection or read data time out”}
,控制台报的错完全就是误导,什么已经连接了(already connected ,can’t reset之类的),浪费了好长时间去搜索报错,发现全都是徒劳。一开始真的没想到会和weblogic有关,直到把sdk的源码下载下来一行一行调测,发现,在AipHttpClient的这一行
URL console = new URL(url);获取到的是
weblogic.net.http.SOAPHttpsURLConnection:https://aip.baidubce.com/oauth/2.0/token
而自己写的测试类,好使的时候,正常应该获取到这个才对
sun.net.www.protocol.https.DelegateHttpsURLConnection:https://aip.baidubce.com/oauth/2.0/token
之所以报错是因为这个原因,所以根据网上查的资料,
http://www.cnblogs.com/garinzhang/p/Java_Weblogic_SOAPHttpsURLConnection_HttpsURLConnection.html
修改了百度的jar包,把代码改成了这样,程序就好使了。
URL console = new URL(null,u