linux服务器下发短信功能会报以下异常:
ceshi15:20
16?ヨ?搴?.绀?
ceshi15:20(瓒.骇绠$.?.
--?.??..?.け璐?java.nio.BufferOverflowException
其中ceshi15:20是我的短信内容
windows服务器下正常。
linux下的异常可能不到具体是哪行代码出错,求大师指点。
问题代码如下,供参考:
public static boolean send(String tel, String msg, String sender, String sendDept, String taskid) {
if(!inited)init();
boolean sendFlag = false;
Socket socket = null;
try {
socket = new Socket(serverIp, serverPort);
if (sendBind(socket)) {
try {
if (sendMessage(socket, tel, msg, sender, sendDept)) {
sendFlag = true;
System.out.println("--短消息发送成功。");
}
else {
System.out.println("--短消息发送失败。");
}
}
catch (Exception ex) {
System.out.println("--短消息发送失败:"+ex);
}
}
else {
System.out.println("--短消息发送失败。绑定未成功!");
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
socket.close();
}
catch (Exception ex) {}
}
if(sendFlag){
dao.updateTask(taskid, 2);
}else{
dao.updateTask(taskid, 1);
}
return sendFlag;
}
catch (Exception ex) {
System.out.println("--短消息发送失败:"+ex);
}
catch块中这样输出无法获取完整的异常栈,调试很困难。
建议先使用log4j,输出较为完整的异常信息,然后贴出来大家一起看看
catch (Exception ex) {
log.error("--短消息发送失败:", ex);
}
或者
catch (Exception ex) {
ex.printStackTrace(); ;
}