yubao2008 2016-01-23 12:08 采纳率: 0%
浏览 4040

用mina 客户端向第三方服务器发送消息时收不到返回报文

package com.demo.single;

import java.net.InetSocketAddress;
import java.nio.charset.Charset;

import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.service.IoConnector;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.LineDelimiter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketConnector;

import com.demo1.BaseConfig;
import com.demo1.ProviderClientHander;

public class ToolSendClient {

public static void main(String[] args) {
    String msg = "0000003076<?xml version=\"1.0\" encoding=\"UTF-8\"?><service><sys-header><data name=\"SYS_HEAD\"><struct><data name=\"APPR_USER_ID\"><field length=\"30\" scale=\"0\" type=\"string\"/></data><data name=\"SEQ_NO\"><field length=\"14\" scale=\"0\" type=\"string\">9095256682051</field></data><data name=\"TRAN_CODE\"><field length=\"8\" scale=\"0\" type=\"string\"/></data><data name=\"TRAN_DATE\"><field length=\"8\" scale=\"0\" type=\"string\">20150720</field></data><data name=\"MESSAGE_CODE\"><field length=\"4\" scale=\"0\" type=\"string\">0407</field></data><data name=\"MODULE_ID\"><field length=\"2\" scale=\"0\" type=\"string\">RB</field></data><data name=\"TRAN_TYPE\"><field length=\"20\" scale=\"0\" type=\"string\"/></data><data name=\"USER_ID\"><field length=\"30\" scale=\"0\" type=\"string\">V0016</field></data><data name=\"MESSAGE_TYPE\"><field length=\"4\" scale=\"0\" type=\"string\">1400</field></data><data name=\"AUTH_PASSWORD\"><field length=\"0\" scale=\"0\" type=\"string\"/></data><data name=\"PROGRAM_ID\"><field length=\"20\" scale=\"0\" type=\"string\">FM144D</field></data><data name=\"SERVICE_CODE\"><field length=\"30\" scale=\"0\" type=\"string\">SVR_INQUIRY</field></data><data name=\"SERVER_ID\"><field length=\"30\" scale=\"0\" type=\"string\">127.0.0.1</field></data><data name=\"BRANCH_ID\"><field length=\"6\" scale=\"0\" type=\"string\">50801</field></data><data name=\"SOURCE_BRANCH_NO\"><field length=\"50\" scale=\"0\" type=\"string\">000011</field></data><data name=\"REVERSAL_TRAN_TYPE\"><field length=\"0\" scale=\"0\" type=\"string\"/></data><data name=\"WS_ID\"><field length=\"200\" scale=\"0\" type=\"string\">01</field></data><data name=\"SOURCE_TYPE\"><field length=\"2\" scale=\"0\" type=\"string\">HB</field></data><data name=\"DEST_BRANCH_NO\"><field length=\"6\" scale=\"0\" type=\"string\">000002</field></data><data name=\"USER_LANG\"><field length=\"100\" scale=\"0\" type=\"string\">CHINESE</field></data><data name=\"TRAN_TIMESTAMP\"><field length=\"9\" scale=\"0\" type=\"string\">165745418</field></data><data name=\"AUTH_FLAG\"><field length=\"4\" scale=\"0\" type=\"string\">N</field></data><data name=\"TRAN_MODE\"><field length=\"1\" scale=\"0\" type=\"string\">ONLINE</field></data><data name=\"AUTH_USER_ID\"><field length=\"30\" scale=\"0\" type=\"string\"/></data><data name=\"APPR_FLAG\"><field length=\"1\" scale=\"0\" type=\"string\"/></data></struct></data></sys-header><app-header><data name=\"APP_HEAD\"><struct><data name=\"PGUP_OR_PGDN\"><field length=\"15\" scale=\"0\" type=\"string\">1</field></data><data name=\"TOTAL_NUM\"><field length=\"15\" scale=\"0\" type=\"string\">10</field></data><data name=\"CURRENT_NUM\"><field length=\"15\" scale=\"0\" type=\"string\">0</field></data><data name=\"PAGE_START\"><field length=\"30\" scale=\"0\" type=\"string\">1</field></data><data name=\"PAGE_END\"><field length=\"15\" scale=\"0\" type=\"string\">10</field></data></struct></data></app-header><local-header/><body><data name=\"BASE_ACCT_NO\"><field length=\"50\" scale=\"0\" type=\"string\">6236220599200002847</field></data><data name=\"CARD_NO\"><field length=\"20\" scale=\"0\" type=\"string\"/></data><data name=\"PASSWORD\"><field length=\"50\" scale=\"0\" type=\"string\"/></data><data name=\"IC_CARD_SEQ\"><field length=\"3\" scale=\"0\" type=\"string\"/></data></body></service>";
    send2(msg);
}

public static void send2(String message) {
    TextLineCodecFactory lineCodec = new TextLineCodecFactory(
            Charset.forName("UTF-8"), LineDelimiter.UNIX.getValue(),
            LineDelimiter.UNIX.getValue());
    lineCodec.setDecoderMaxLineLength(1024 * 1024); // 1M
    lineCodec.setEncoderMaxLineLength(1024 * 1024); // 1M

    IoConnector connector = new NioSocketConnector();
    connector.getFilterChain().addLast("logger", new LoggingFilter());
    connector.getFilterChain().addLast("codec",
            new ProtocolCodecFilter(lineCodec));
    connector.setHandler(new ProviderClientHander());

// ConnectFuture connectFuture = connector.connect(new InetSocketAddress("127.0.0.1",BaseConfig.ESB_PORT));
ConnectFuture connectFuture = connector.connect(new InetSocketAddress("10.129.34.215", BaseConfig.ESB_PORT));
// 等待建立连接
connectFuture.awaitUninterruptibly();
System.out.println("连接成功");

    IoSession session = connectFuture.getSession();
    session.write(message);
    // 关闭
    if (session != null) {
        if (session.isConnected()) {
            session.getCloseFuture().awaitUninterruptibly();
        }
        connector.dispose();
    }
}

}

  • 写回答

3条回答

  • yubao2008 2016-01-23 12:29
    关注

    发给第三方服务器时日志:
    信息: CLOSED
    client与:/10.129.34.215:20071断开连接

    而发给mina模拟的服务器商时日志:
    信息: RECEIVED: HeapBuffer[pos=0 lim=1504 cap=4096: 3C 64 61 74 61 20 6E 61 6D 65 3D 22 54 54 5F 41...]
    client接受信息:0000003541<?xml version="1.0" encoding="UTF-8"?>...

    请问一下是怎么回事了,已困扰了好,多谢

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)