2013-02-12 3 views
1

메시지를 MQ에 쓸 필요가 있으며 어떤 이유로 인해 실패하면 해당 메시지를 텍스트 파일에 작성해야합니다. 메시지가 MQ로 다시 흐르기 시작할 때까지이 텍스트 파일에 메시지를 계속 추가해야합니다. 메시지가 흐르기 시작하면 텍스트 파일을 확인하고 보류중인 모든 메시지를로드하고 텍스트 파일에서 삭제해야합니다. 메시지의 전송이 실패한 경우JMSBytesMessage to string 및 String to JMSBytesMessage typecasting

try{ 
    sender.send(mqMessage); where mqMessage is of JMSBytesMessage 
} 

지금, 나는 메시지 일단

catch(JMSException mqe) 
     { 
      mqe.printStackTrace(); 
      try{ 


       String msgString= mqMessage.toString(); 
       FileWriter fstream = new FileWriter(filePath); 
       BufferedWriter out = new BufferedWriter(fstream); 
       out.append(msgString); 
       out.close(); 
       } 
      catch (Exception e){//Catch exception if any 
        System.err.println("Error: " + e.getMessage()); 

       } 

     } 

내가 TEXTFILE를 읽고 내부의 모든 메시지 를로드 할 필요가 흐르기 시작 텍스트 파일에이를 작성해야 첫번째 시도 블록 sender.send(mqMessage)

나는 전체 파일 내용을 읽고 메시지를 분할하고 문자열에 저장 한 후 그 문자열을 JMSBytesMessage 유형으로 입력하여 어떻게 형변환 할 수 있습니까? MQ에.

나는 JMSBytesMessage을 문자열로 변환하고 다시 JMSBytesMessage으로 문자열을 변환하려고했지만 실제로는 양쪽 유형 캐스팅을 수행하고 싶다고 말하고 싶기 때문에 여기서 전체 시나리오를 언급했습니다.

감사

답변

1

int length = new Long(message.getBodyLength()).intValue(); 
byte[] b = new byte[length]; 
message.readBytes(b, length); 
String text = new String(b, "UTF-8"); 

텍스트 바이트 메시지에 텍스트로 BytesMessage의

byte[] b = mytext.getBytes("UTF-8"); 
BytesMessage message = session.createBytesMessage(); 
message.writeBytes(bArray);