工行非NC方式向银行发送指令数据

if568215970 2015-05-04 05:25:20
最近在工行接口,用工行接口的client模块,向银行发送指令数据。遇到一些问题,想向各位做过,或者知道问题坐在的大神指教一下~~~
(就只剩下100分了,全压在这里了,这个问题弄的烦死了~)
jar方面是直接使用的工行提供的。
直接上代码吧~
	public static void send(String t_cdoe, String data){
String tran_code = t_cdoe;
String body = data.trim();

byte[] certificate = null;
try {
certificate = TranslationTool.readFile("d:/icbc/certificate/xxxxfnc.cer");
} catch (Exception e) {
logger.error("读取企业数据层公钥文件异常",e);
return;
}
PostMethod mypost = new PostMethod();
mypost.addParameter("Version", "0.0.0.1");
mypost.addParameter("GroupCIS", "xxxxxxxxxxxx");//工行CIS号
mypost.addParameter("BankCode", "xxx");//银行编码
mypost.addParameter("TransCode", tran_code);

mypost.addParameter("reqData", getrevFromBASE64(body.getBytes()));//请根据实际修改上送包xml数据
mypost.addParameter("ID", "xxxxx");//请根据实际修改证书名称
mypost.addParameter("PackageID", "201505040000001");//要求永远不能重复,可以参考接口文档的说明
mypost.addParameter("Cert", getrevFromBASE64(certificate));
try
{
Protocol myhttps =
new Protocol(
"https",
new AuthSSLProtocolSocketFactory(
null,
null,
new URL("file:///D:/icbc/certificate/xxxxxtrust"),
null),
443);
//Protocol.registerProtocol("https", myhttps);
HttpConnection myconn =
new HttpConnection(工行系统地址, port(工行监听端口), myhttps);
myconn.open();
if(!myconn.isOpen()){
logger.error("HttpConnection open error");
return ;
}
int re_code = mypost.execute(new HttpState(), myconn);
if (re_code==200)
{
logger.debug("已成功发送一笔 "+t_cdoe);
String repMsg = mypost.getResponseBodyAsString();
logger.debug("已接收到返回信息 "+repMsg);
}
else
{
logger.debug("发送失败,http错误码"+re_code);
}
}
catch (MalformedURLException e1)
{
logger.error("无法读取工行通讯层证书", e1);
}
catch (Exception e1)
{
logger.error("通讯失败!",e1);
}
}


地址和端口都是通的,证书是工行人提供的,所以证书应该是不会报错的,运行却报错了~
[ICBCCLIENT]2015-04-29 10:43:15.167 ERROR - 通讯失败! -[http-8080-1] icbc.api.client646
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Untrusted Server Certificate Chain
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:150) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1584) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:174) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:168) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:848) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:106) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:877) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1089) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:618) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59) ~[na:1.5]
at org.apache.commons.httpclient.HttpConnection$WrappedOutputStream.write(HttpConnection.java:1351) ~[commons-httpclient-2.0-rc2.jar:2.0-rc2]
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) ~[na:1.5.0_22]
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) ~[na:1.5.0_22]
at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:779) ~[commons-httpclient-2.0-rc2.jar:2.0-rc2]
at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2257) ~[commons-httpclient-2.0-rc2.jar:2.0-rc2]
at org.apache.commons.httpclient.HttpMethodBase.processRequest(HttpMethodBase.java:2629) ~[commons-httpclient-2.0-rc2.jar:2.0-rc2]
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1085) ~[commons-httpclient-2.0-rc2.jar:2.0-rc2]
at icbc.api.client.send(client.java:118) ~[client.class:na]
at org.apache.jsp.index_jsp._jspService(index_jsp.java:86) [icbcClient/:na]
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [jasper.jar:6.0.41]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) [servlet-api.jar:na]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) [jasper.jar:6.0.41]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) [jasper.jar:6.0.41]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) [jasper.jar:6.0.41]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) [servlet-api.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:6.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.41]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) [catalina.jar:6.0.41]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [catalina.jar:6.0.41]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [catalina.jar:6.0.41]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [catalina.jar:6.0.41]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:6.0.41]
at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:347) [catalina-ha.jar:6.0.41]
at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:227) [catalina-ha.jar:6.0.41]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) [catalina.jar:6.0.41]
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879) [tomcat-coyote.jar:6.0.41]
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:617) [tomcat-coyote.jar:6.0.41]
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1774) [tomcat-coyote.jar:6.0.41]
at java.lang.Thread.run(Thread.java:595) [na:1.5.0_22]
Caused by: java.security.cert.CertificateException: Untrusted Server Certificate Chain
at com.sun.net.ssl.X509TrustManagerJavaxWrapper.checkServerTrusted(SSLSecurity.java:600) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(SSLContextImpl.java:320) ~[na:1.5]
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:841) ~[na:1.5]
... 36 common frames omitted
...全文
808 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joker0302 2018-05-21
  • 打赏
  • 举报
回复
jdk版本过高,换1.7的就好了
小豆干 2017-05-05
  • 打赏
  • 举报
回复
java.net.UnknownHostException: https://cmpgtcg3.dccnet.com.cn 我遇到了这个错误,有人知道是什么原因吗,急求
zglia 2017-03-29
  • 打赏
  • 举报
回复
急求!!我也遇到相同的问题,求大神解答啊。。。。。。
wu198827 2017-03-15
  • 打赏
  • 举报
回复
楼主是怎么解决的,我和你一样的代码,也碰到了这个问题?
wu198827 2017-02-06
  • 打赏
  • 举报
回复
我也在对接,但是现在环境还没通,不知道会不会碰到与你一样的问题
刘起 2016-01-15
  • 打赏
  • 举报
回复
遇到相同的问题,有人知道 原因吗?
if568215970 2015-05-04
  • 打赏
  • 举报
回复
自己先顶一下~有木有人哇~

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧