我通过JAVA连接MQ,CCSID为1381,系统为WIN,可以正常放入消息,通过JAVA放入的也可以通过JAVA正常读出来,不会报错,
但是我通过MQ资源管理器放入的测试消息,再去读的时候就报如下错误:
java.io.EOFException
at java.io.DataInputStream.readFully(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at com.ibm.mq.MQMessage.readUTF(MQMessage.java:1229)
at test.MessageByMQ.getMessage(MessageByMQ.java:123)
at test.MessageByMQ.main(MessageByMQ.java:146)
我通过DISPLAY QMGR查看,CCSID也为1381,不知道为什么这样就读不出来。
另外我的JAVA JAR包是通过WEBSPERE6.1中取出来的,因为我安装好MQ7后,将JAR包取出来,报有一些类不存在,典型如MQException不存在,所以就只好用WEBSPERE6.1中取出的JAR包,不知道是否与这个有关系?
谢谢解答。
 转载请注明源自 www.WebSphereChina.net, 请保留版权 . 
 原文地址:http://www.webspherechina.net/club/viewthread.php?tid=8664

解决方案 »

  1.   

    基本解决:
    原来读的方式为:readUTF()
    但是这种方式在其它的应用程序采用writeUTF写入消息的时候不会报错,就是我上面提到的当前的JAVA程序可以读出该程序中写入的消息,
    但是通过MQ资源管理器放入的测试消息就不是UTF这样的格式的,所以会报错,
    后来尝试采用readLine的方式去读取,可以正常读出来,但是如果写入的是XML这样的消息,采用readLine就不行了,后面尝试readStringOfCharLength方法,可以正常读出客户端应用程序通过writeBytes方法写入的消息,也可以正常读出通过MQ客户端放入的测试报文,
    这个问题搞了我一整天,终于可以暂时放一下了。
      

  2.   

    Java 深度探索者 
    SSH、Ant、IBatis、jsf、seam、portal、设计模式、 
    ZK、DWR、ajax、CSS 、oracle 
    群号:65670864 欢迎加入