2013-06-13 2 views
2

저는 quickfix와 java의 초보자입니다.Quickfixj를 사용하여 BodyLength 필드 (태그 9) 또는 CheckSum (태그 10)을 삭제하는 방법

일반적으로 quickfix 메시지에서 Field를 제거하려면 태그와 함께 removeField 메소드를 사용하지만 자동 생성 된 2 개의 필드 인 BodyLength (tag 9) 및 CheckSum (태그 10).

예를 들어, 메시지를 작성한 다음 인쇄합니다. 45 : 22.28256 = ClientComp1234109 = default112 = default10 = 067

다음 I이 필드를 제거 말할

System.out.println(message) 

8 = FIX.4.29 = 8635 = 149 = WFSComp23452 = 20130613-21 준다 다시 다음

message.getHeader().removeField(8); 

및 인쇄와 태그 번호 8, , 내가 얻을

9 = 7435 = 149 = WFSComp23452 = 20130613-22 : 06 : 32.81956 = ClientComp1234112 = default10 = 필드가 제거된다 (105)

하지만 동일한 방법으로 9 개의 태그를 삭제하려고하면

message.getHeader().removeField(9); 
I 인쇄

출력 제거 필드없이 동일한 코드를 산출한다 :

9 = 7,435 = 149 = WFSComp23452 = 20130613-22 : 06 : 32.81956 = ClientComp1234112 = default10 = 105

9 필드는 여전히 다시!

내 생각에 quickfix가 자동으로 bodylength를 생성하기 때문입니다.하지만 어떻게 제거합니까? 고맙습니다.

링크 quickfix합니다 :

의 javadoc : http://www.quickfixj.org/quickfixj/javadoc/1.5.3/

http://www.quickfixj.org/

답변

3

예, QuickFIX 자동으로 BodyLength 및 체크섬을 생성합니다.

내가 상상할 수없는 이유 당신이 이러한 필드를 제거해야하지만, 당신이 정말로 제거 해당 필드와 메시지 문자열을 원하는 경우, 당신은 사실 후에 적용 정규식 함께 kludge 수 있다고 생각합니다 세계 :

message.toString().replaceAll("\09=[0-9]*","").replaceAll("\010=[0-9]*","") 

다시 말하지만, 나는 이것을 할만한 이유가 없습니다.

+0

감사합니다. 나는 어느 쪽이든을 모른다, 할당을 위해이다 –