2011-03-10 3 views
0

우리는 현재 재현 할 수없는 파일 쓰기/인코딩 문제가 발생합니다. 실제로 같은 원인이 될 수있는 두 가지 문제가 있습니다.파일의 시작 또는 끝에있는 정크 문자

1) 우리는 사용자 요청에 따라 CSS 템플릿을 사용하여 속도 템플릿을 사용하는 응용 프로그램 (또는 동일한 응용 프로그램의 여러 인스턴스)을 보유하고 있습니다. 그러나 동일한 응용 프로그램 (동일한 서버에서 실행되고 같은 버전의 동일한 라이브러리를 사용하는 경우)의 경우 UTF-8 바이트 순서 표가 아닌 파일에 기록 된 CSS 문자열에 일부 stange 문자를 추가합니다.

2) 또 다른 응용 프로그램은 최근 정크 문자가 추가 된 JAR 파일 (EAR에 있음)을 전달했습니다. 대개 동일한 애플리케이션이 자바 스크립트 파일을 올바르게 전달하므로 아직 그 동작을 재현 할 수 없습니다. 서버의 임시 폴더에 쓰여진 파일이 어떻게 든 손상되었다고 추측 할 수 있습니다.

두 응용 프로그램 모두 정크 문자가 파일에 추가되므로 동일한 또는 유사한 원인 일 수 있습니다.

그러나 앞에서 말했듯이 테스트 또는 개발 시스템에서이 동작을 재현 할 수 없으며 원인을 알 수 없습니다 (UTF- 8).

OS : 데비안 GNU/리눅스 5.0.4 (레니) 보스 : 4.2.3.GA 자바 썬 JDK 1.5.0_17-B04

여기에 시스템에 대한 몇 가지 자세한 정보입니다 어떤 일이 벌어지고 있거나 우리가 찾을 수있는 아이디어가 있습니까?

미리 감사드립니다.

편집 : 문제 1)

... 
FileWriter fw; 
try 
{ 
    String path = tConfigProperties.getProperty(VELOCITYPATHPARAM); 
    fw = new FileWriter(path + VELOCITYFILEPARM); 
    fw.write(sw.toString());//sw is a StringWriter passed to velocity for template processing 
    fw.close(); 
} 
catch(IOException e) 
{ 
    //handle exception and display error message 
} 

문제 2에 대한 코드의

부) 우리가 모두가 JSP에서 자바 스크립트를 연결하기 때문에, 우리의 자바 코드에 문제가 될 수 없습니다 .

답변

1

코드가 read(byte[]) 호출에 의해 반환 된 값을 고려하지 않고 바이트 버퍼를 사용하여 파일을 읽거나 쓰는 가능성을 살펴 봅니다. (꽤 기본적인 것처럼 들리지만 근본적으로 이것이 근본적인 문제인 곳의 문제를 보았습니다.)

+0

+1 문제 1에 대한 입력을 다시 확인하십시오. – Thomas

0

문제의 원인을 찾은 것 같습니다. 1 : 속도 템플리트에는 해당 문자도 포함됩니다. 그러나 우리는 이미 이것을 확인했고 거기에는 없다고 생각했습니다. 그러나 errare humanum est. :)

문제 번호. 2가 여전히 존재하며 이는 재현성이 훨씬 낮습니다.

관련 문제