写了一段java代码,用来调用http接口,java代码用执行的时候没有问题,但把代码部署在项目中就出错。

qq_26334793 2017-03-23 02:07:54
错误出现在httpclient提交数据的阶段,错误代码如下:
- I/O exception (java.net.ConnectException) caught when processing request: Conn
ection refused: connect
- Retrying request
- I/O exception (java.net.ConnectException) caught when processing request: Conn
ection refused: connect
- Retrying request
- I/O exception (java.net.ConnectException) caught when processing request: Conn
ection refused: connect
- Retrying request
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:240)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.c
reateSocket(DefaultProtocolSocketFactory.java:79)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.c
reateSocket(DefaultProtocolSocketFactory.java:121)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java
:706)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Htt
pMethodDirector.java:386)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMe
thodDirector.java:170)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:396)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:324)
at com.synch.Synch.SynchronizedUserInfo(Synch.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.j
ava:401)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider
.java:309)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
333)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:479
)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:85
4)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:98)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
t.java:313)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
at java.lang.Thread.run(Thread.java:619)

我在网上查了一下,说我没有关闭连接没有释放或者释放方法不对,按照这个http://www.iteye.com/topic/234759改了一下但是改了之后还是报错。
求大神指教,
...全文
328 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_26334793 2017-03-23
  • 打赏
  • 举报
回复
调用SynchronizedUserInfo()方法,程序运行到 httpClient.executeMethod(methodPost); 就不往下运行了,因为我输出的2222222没有输出
qq_26334793 2017-03-23
  • 打赏
  • 举报
回复
package com.synch; import java.util.Iterator; import com.bjca.uums.client.bean.RoleInformation; import com.trs.idm.spnego.Base64; import com.trs.idm.util.DesEncryptUtil; import com.trs.idm.util.StringHelper; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.rmi.RemoteException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.SimpleHttpConnectionManager; //import org.apache.commons.httpclient.SimpleHttpConnectionManager; import org.apache.commons.httpclient.methods.PostMethod; public class Synch { private static String idsUrl = "http://127.0.0.1:8085/ids"; private static String serviceUrl = idsUrl + "/service?idsServiceType=remoteapi&method=userManageService"; public Synch() { } public boolean SynchronizedUserInfo(int operateID, String operateCode, String operateType) { boolean bolret = false; System.out.println("操作id"+operateID); System.out.println("用户code"+operateCode); System.out.println("------"+operateType); /*********************************用户*********************************************/ if (operateID == 11) { cn.gov.bjxch.ca.uumsinterface.services.User.UserSoapBindingStub binding; try { binding = (cn.gov.bjxch.ca.uumsinterface.services.User.UserSoapBindingStub) new cn.gov.bjxch.ca.uumsinterface.services.User.UserServiceLocator().getUser(); } catch (javax.xml.rpc.ServiceException jre) { if(jre.getLinkedCause()!=null) jre.getLinkedCause().printStackTrace(); throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException caught: " + jre); } // Time out after a minute binding.setTimeout(60000); com.bjca.uums.client.bean.PersonInformation value = null; com.bjca.uums.client.bean.LoginInformation logininfo = null; try { value = binding.findPersonInfosByUserIDForDC(operateCode); logininfo = binding.getLoginInformationByUserID(operateCode); //PostMethod methodPost = new PostMethod(serviceUrl); String username = value.getUserName(); String default1 = value.getDefault1(); String userdefault1 = value.getUserDefault1(); String userdefault2 = value.getUserDefault2(); String userdefault3 = value.getUserDefault3(); String userdefault4 = value.getUserDefault4(); String userdefault5 = value.getUserDefault5(); String userdefault6 = value.getUserDefault6(); String userdegree = value.getUserDegree(); String cardnum = value.getUserIdcardNum(); String userloginname = logininfo.getLoginName(); String usernickloginname = logininfo.getLoginNickName(); String userpassword = logininfo.getLoginPwd(); //String firstname=value. System.out.println("用户对象value=========" + value); System.out.println("用户姓名username=========" + username); System.out.println("aaaaaaaaaaaaa" + username); //System.out.println("bbbbbbbb" + methodPost); System.out.println("1" + default1); System.out.println("2" + userdefault1); System.out.println("3" + userdefault2); System.out.println("4" + userdefault3); System.out.println("5" + userdefault4); System.out.println("6" + userdefault5); System.out.println("7" + userdefault6); System.out.println("8" + userdegree); System.out.println("9" + cardnum); System.out.println("用户登陆名==========" + userloginname); System.out.println("用户昵称=======" + usernickloginname); System.out.println("用户密码=====" + userpassword); try { System.out.println("ca数据取出完成"); String data = "userName="+username+"&password="+userpassword+"&nickName=trsceshi&firstName="+username+"&lastName="+username+"&email=wang.weizhe@trs.com.cn"; // 2、根据整串生成摘要签名 System.out.println(data); MessageDigest md = MessageDigest.getInstance("MD5"); System.out.println("开始加密"); md.update(data.getBytes("UTF-8")); System.out.println("开始加密111111"); byte[] digestByte = md.digest(); // 2-1) 将生成的摘要转成16进制数表示 System.out.println("开始加密222222"); String digest = StringHelper.toString(digestByte); // 3、对整串进行加密处理 // 3-1)对整串做base64编码(去编码化) System.out.println("开始加密33333"); String base64Encoded = new String(Base64.encode(data.getBytes("UTF-8"))); System.out.println("开始加密4444"); // 3-3) 对data进行加密处理 并将结果转换成16进制表示 String dataAfterDESEncode =DesEncryptUtil.encryptToHex(base64Encoded.getBytes("UTF-8"),"12345678"); // 4、将摘要签名和加密后的参数拼接成最终提交IDS的参数 System.out.println("开始加密5555"); String finalData = digest+"&"+dataAfterDESEncode; System.out.println("开始提交"); PostMethod methodPost = null; methodPost = new PostMethod(serviceUrl); // 构造提交的参数 //methodPost.setRequestHeader("Connection", "close"); methodPost.addParameter("appName","SynchBJCA"); methodPost.addParameter("manageServiceTag","managerAddUser"); //methodPost.addParameter("version","v5.0"); methodPost.addParameter("data", finalData); //methodPost.addParameter("password","trsadmin123"); //methodPost.addParameter("nickName","test"); HttpClient httpClient = buildHttpClient(); // 向服务器发送HTTP Post请求 String responsePost = null; System.out.println("写入数据"); System.out.println("111111111111"); httpClient.executeMethod(methodPost); System.out.println("222222222" ); System.out.println("关闭连接"); httpClient.getHttpConnectionManager().closeIdleConnections(0); methodPost.releaseConnection(); //((SimpleHttpConnectionManager)httpClient.getHttpConnectionManager()).shutdown(); } catch (HttpException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("finished"); } catch (RemoteException ex) { ex.printStackTrace(); } bolret = true; return true; } if (operateID == 12) { //修改用户信息 return true; } if (operateID == 13) { //删除用户信息 return true; } /********************************机构*********************************************/ if (operateID == 41) { cn.gov.bjxch.ca.uumsinterface.services.Department.DepartmentSoapBindingStub binding; try { binding = (cn.gov.bjxch.ca.uumsinterface.services.Department.DepartmentSoapBindingStub) new cn.gov.bjxch.ca.uumsinterface.services.Department.DepartmentServiceLocator().getDepartment(); } catch (javax.xml.rpc.ServiceException jre) { if(jre.getLinkedCause()!=null) jre.getLinkedCause().printStackTrace(); throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException caught: " + jre); } // Time out after a minute binding.setTimeout(60000); // Test operation com.bjca.uums.client.bean.DepartmentInformation Dvalue = null; String departname = ""; try { Dvalue = binding.findDepartByDepartCodeForDC(operateCode); departname = Dvalue.getDepartName(); bolret = true; } catch (RemoteException ex2) { ex2.printStackTrace(); } return true; } if (operateID == 42) { //修改机构信息 return true; } if (operateID == 43) { //删除机构信息 return true; } return true; } private HttpClient buildHttpClient() { // TODO Auto-generated method stub HttpClient http=new HttpClient(); return http; } }
逗泥丸的平方 2017-03-23
  • 打赏
  • 举报
回复
所以你倒是贴代码...

62,625

社区成员

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

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