本地测试没有问题,服务器上出现问题。具体请看代码。
方法代码如下,前端的一个收费操作。后台需要做的是更新数据库信息。以及和其他系统通信。在在本地测没有一点问题,能正常实现功能,但部署到正式环境的服务器上,就不行。前端一直处于等待状态。服务器环境:weblogic + linux
public void updateChildOrder(Map map) throws Exception { // 收费操作
logger.info("进入 方法【OrderInfoServiceImpl updateChildOrder()......】");
UserBean user=(UserBean) SecurityUtils.getSubject().getPrincipal();
String status = map.get("sta").toString();
String primaryKey = CommonUtils.generatePrimaryKey().toString(); // 新增收费 流水号
if (status != null && status.equals("1")) { // 若有新增收费 则新增子订单记录
map.put("orderSerialNumber", primaryKey); // 子订单流水号
map.put("orderType", "100"); // 订单类型 6:新增费用
map.put("busiTypeName", "新增费用"); // 业务类型名称
map.put("status", "5"); // 订单状态 5:已收费 提交
orderInfoDao.addChildOrder(map);
}
String ids = map.get("idStr").toString();
String pricesr = map.get("priceStr").toString();
String types = map.get("orderTypes").toString();
String[] idStr = ids.split(",");
String[] priceStr = pricesr.split(",");
String[] orderTypes = types.split(",");
for (int i = 0; i < idStr.length; i++) {
Map maps = new HashMap();
maps.put("paid", priceStr[i]); // 订单实收金额
maps.put("orderId", idStr[i]); // 订单号
if (orderTypes[i].equals("3")) {
maps.put("status", 1); // 须开卡类业务 订单状态 1:已收费
} else {
maps.put("status", 5); // 其他无须开卡类型 订单状态 5:已提交
}
orderInfoDao.updateChildOrder(maps);
}
Map m = new HashMap();
m.put("orderInfoNumber", map.get("mainOrderNo"));
m.put("status", 5); // 子订单状态 5:已提交
if (isOrderStatus(m)) { // 判断所有子订单是否 都已提交
m = new HashMap();
m.put("orderId", map.get("mainOrderNo"));
m.put("status", 5); // 子订单已全部提交 主订单状态 5:已全部提交
orderInfoDao.updateMainOrder(m);
} else {
m = new HashMap();
m.put("orderId", map.get("mainOrderNo"));
m.put("status", 2); // 子订单未全部提交 主订单状态 2:已收费
orderInfoDao.updateMainOrder(m);
logger.info("创建订单更改接口对象【IOrderWSServiceClient】");
// 通过 webservice 及时将信息传回 助销系统侧 并获取结果 已收费
IOrderWSServiceClient client = new IOrderWSServiceClient();
IOrderWSServicePortType service = client.getIOrderWSServiceHttpPort();
String mainOrderNo = map.get("mainOrderNo").toString(); // 主订单Id
Date now = new Date();
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = f.format(now); //时间
String in0 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<INPUT><OP_NO>" + mainOrderNo + "</OP_NO>" + "<OP_TIME>"
+ date
+ "</OP_TIME>" // 时间
+ "<ORDER_STS>10</ORDER_STS>" // 10 :已收费
+ "<ORDER_STS_REMARK>已收费</ORDER_STS_REMARK>" // 状态说明
+ "<OP_CHNL>1</OP_CHNL>" // 受理渠道(1:沃盟侧受理)
+ "<MODIFY_DATE>" + date
+ "</MODIFY_DATE>" // 订单处理时间
+ "<OP_ID>"+user.getUserId()+"</OP_ID>" //操作人id
+ "<OP_NAME>"+user.getName()+"</OP_NAME>"//操作人项目
+ "<OP_PHONE>"+user.getPhone()+"</OP_PHONE>";//操作人电话
if (status != null && status.equals("1")) { // 若有新增收费 则新增子订单记录
in0 += "<ORDER_DETAIL_LIST><ORDER_DETAIL>"
+ "<ORDER_DETAIL_NUMBER>"
+ primaryKey
+ "</ORDER_DETAIL_NUMBER>" // 子订单流水号
+ "<ORDER_DETAIL_TYPE>100</ORDER_DETAIL_TYPE>" // 子订单类型 100:新增费用
+ "<BUSI_TYPE_NAME>" + map.get("orderFeePrice") + "</BUSI_TYPE_NAME>" // 费用
+ "<BUSI_TYPE_PAID>" + map.get("paid")+ "</BUSI_TYPE_PAID>" // 实收
+ "<PHONE_TYPE>" + map.get("descs") + "</PHONE_TYPE>" // 描述
+ "</ORDER_DETAIL></ORDER_DETAIL_LIST>";
}
in0 += "</INPUT>";
logger.info("【OrderInfoServiceImpl】修改订单报文信息:"+in0);
System.out.println("【OrderInfoServiceImpl】修改订单报文:"+in0);
String resStr = service.updateOrder(in0);
logger.info("【OrderInfoServiceImpl】修改订单报文反馈信息:"+resStr);
Map resMap = xmlElements(resStr);
if (!resMap.get("code").toString().equals("0")) {
throw new Exception(resMap.get("info").toString());
}
}
}
困扰已久,求大神解答。 java? webservice 服务器 更新?mybitias 无响应
分享到:
[解决办法]
检查网络是否能连通。
重点检查 web到数据库的
[解决办法]
很崩溃,放到服务器环境不行,那到底是哪里不行?
是访问不了该服务器,还是服务器报错404或者500?或者其他?
你这一句“前端一直处于等待状态。”我真的无法理解具体情况。
服务端那边有Log信息吧?
首先,查看log看看是否收到请求
第二,看看log到了哪一层
第三,看看服务器的数据库是否被修改。
第四,想想服务器和本地有哪些不一样的地址,路径的问题?环境变量的问题?jar包的问题等等。。。
[解决办法]
前端一直处于等待状态, 十有八九就是网络连不上,一直等啊等,等到网络超时。。。