2013-07-01 5 views
1

웹 서비스 요청을 구문 분석하기 위해 XML-INTO 연산 코드를 사용하고 있습니다. 모든 이제 다음 내가 302에 대한 도움말은 본인이 아는XML 파서가 오류 코드 302를 찾았습니다.

302 The parser does not support the requested CCSID value or 
the first character of the XML document was not '<' 

입니다

(RNX0351 - "The XML parser detected error code 302"). 

로그에 오류를 얻을 첫 번째 문자는 "<"하고 요청이 생성됩니다 이전 웹 서비스 호출 때문에 CCSID가 변경된 경우 매우 놀랐습니다.

특정 쿼리에 대해 오류가 반복적으로 발생하므로 데이터가 거의 확실하게 관련되어 있으므로 문제가되는 항목을 식별하는 방법에 대해 확신 할 수 없습니다.

문제를 결정하는 방법에 대한 의견이나 문제를 해결하는 방법에 대한 의견이 있으십니까?

환호

+0

처리중인 XML 문자열을 덤프하는 것이 좋습니다. 즉, 첫 번째 문자가 NULL인지, BOM인지 또는 다른 것이 아닌지를 확인할 수 있습니다. –

+0

요청은 처리가 시작될 때 IFS에 쓰여지고 비누 봉투의 시작 부분부터 "<", 공백, 널 또는 바이너리가 아니라는 것을 알 수 있습니다. 요청은 업데이트이고 원본은 동일한 서버에서 바로 이전에 발생하는 "get"이며 다른 레코드에서 비슷한 업데이트를 수행하면 행복하게 작동하므로 내 믿음은 데이터와 관련이 있습니다. – NZM

+0

IFS에있는 파일의 CCSID는 무엇입니까? –

답변

2

CCSID는 AS400/iSeries의/전원 시스템 속성이며, 전체 IFS에 적용됩니다.
파일 내부의 내용, 즉 내부 인코딩이 "있어야하는 내용"과 같습니다.

파일에서 인코딩 된 데이터 내용과 파일 1 (봉투)이 일치하고 상자에서이 특성을 사용하여 해당 문자를 표시하고 처리한다고 가정합니다.

하나의 인코딩으로 데이터를 수신하는 것처럼 들리지만 CCSID 파일이 일치하지 않습니다.

파일 (봉투 만)에서 CCSID를 변경하십시오. E.G .: 37 (미국), 500 (라틴 -1), 819 (utf-8), 850 (도스), 1252 (승리) 및 표시 파일.

먼저 QSH 또는 QP2TERM에서 ls -Sla yourfile 또는 EDTF를 사용하여 확인할 수 있습니다. CHGATTR을 사용하면 QSH에서 setccsid뿐만 아니라 CCSID도 변경할 수 있습니다 (다시).

이 방법을 통해 관련 문제를 찾을 수있었습니다. 데이터는 400에서 볼 수 있지만 Win의 공유 폴더를 통해 표시되지 않을 수도 있음을 기억하십시오. 즉, CCSID 파일은 컨텐츠 인코딩이 일치하지 않음을 의미합니다.

희망이 있습니다.