做的一个电商网站,用的担保交易,按照文档填的参数,现在付款方面都很正常,但是买家付款后,商家有个发货,点了发货后,老是失败。前面曾经有一天成功过,但是不知道为什么。
发货按钮是提交到后台一个controller,我把controller 方法主体发出来吧。
public class AdminSendGoodsController extends Controller{
private static String failedUrl="http://182.92.103.164:8080/BPPost/xmlfailed";
private static String successUrl="http://182.92.103.164:8080/BPPost/xmlsuccess";
/**
* <%=request.getContextPath()%>/admin/SendGoods/
*/
public void index(){
boolean flag =false;
byte[] xmlbyte = "测试测试".getBytes();
URL url;
try {
url = new URL(successUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(20000);
conn.setDoOutput(true);// 允许输出
conn.setDoInput(true);
conn.setUseCaches(false);// 不使用缓存
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Length", String.valueOf(xmlbyte.length));
conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
conn.getOutputStream().write(xmlbyte);
conn.getOutputStream().flush();
conn.getOutputStream().close();
if(200 == conn.getResponseCode()){
InputStream inputStream = conn.getInputStream();
System.out.println(PostXmlParseUtils.xmlParse(inputStream));
flag = true;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
if(flag){
//如果正常,则发货成功
//更新物流方式
int indentId = getParaToInt("indentId");
int transportId = getParaToInt("transport");
Indent indent = Indent.me.findById(indentId);
indent.set("TransportId", transportId);
indent.set("Status", 2);
flag = indent.update();
renderJson("{\"flag\": \"success\"}");
}else{
//否则,发货失败
renderJson("{\"flag\": \"error\"}");
}
}
就这样,然后结果是一直发货失败。
查看eclipse的console,报的异常是
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method).....
这个应该是sengoods里的方法发送链接请求失败,昨天的时候是请求超时,我不知道为什么变了,那个方法里的网址是干什么的也没搞懂,(这个是别人写的代码,那人联系不到了,现在我接手修改的,我刚学编程几个月,新人一个)。
在网页里审查元素,网页向sendgoods这个方法发送请求返回值是200,说明请求已经到达这个方法了,现在就是这个方法向successURL发送请求的时候失败了,我的理解大概就这样,就不知道怎么解决这儿问题,求解求解,非常感谢。@JFinal
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。