다음과 같은 에러 메시지를 만났다.

The method dataTransfer(TFTPSocket, ACK, ACK) in the type TFTPUtils is not applicable for the arguments (TFTPSocket, ACK, ACK)

혹시나 해서 패키지 불일치를 확인했으나, 그것도 아니었다.

할 수 없이 이클립스가 시키는대로

에러를 표시하는 붉은 색 x 버튼을 클릭하고,

Change type of 'tftpSock' to 'TFTPSocket'을 선택했다.

황당하게도 문제가 해결되었다.

변경된 내용은 다음과 같은 import 문이 추가되었다.

import com.corecess.viewlinxx.common.tftp.common.TFTPSocket;

하지만 이 클래스는 이미 다음 import 문에 의해 추가되었을텐데 황당하기 짝이 없다.

import com.corecess.viewlinxx.common.tftp.common.*;

Posted by 알 수 없는 사용자
,

이클립스에서 JFreeChart를 사용하기 위해 import시키면 다음과 같은 에러에 직면할 수 있다.

The project was not built since its build path is incomplete. Cannot find the class file for org.jfree.util.PublicCloneable. Fix the build path then try building this project

The type org.jfree.util.PublicCloneable cannot be resolved. It is indirectly referenced from required .class files

이는 JCommon 라이브러리의 CLASSPATH가 안 잡혀있기 때문이다. JCommon 라이브러리는 JFreeChart에 포함되어 있으므로 찾아서 포함시켜주면 해결된다.

Posted by 알 수 없는 사용자
,

자바에서는 ZIP entry를 UTF8로 처리한다. 하지만 알집에서는 ZIP entry를 UTF8이 아닌 인코딩을 사용하기 때문에 문제가 생긴다. (무슨 인코딩인지 확인하지 못했다.) 자바에서는 ZIP entry를 읽거나 쓸 때 인코딩을 변경할 수 있는 인터페이스를 제공하지 않는다.

jazzlib이라는 오픈 소스를 사용하면 알집과 호환되는 인코딩으로 처리해준다. 하지만 ZIP entry 목록을 확인하면 UTF8이 아니기 때문에 여전히 문제가 있다.

Apache Ant 안에 있는 ZIP 라이브러리 (ant.jar)를 사용하면 인코딩 변환까지 알아서 해준다. 안타까운 점은 ZipInputStream 클래스가 없어서 압축을 해제할 수가 없다는 것이다. 이 부분만 jazzlib의 클래스로 교체해서 사용하면 된다.

jazzlib이나 Apache Ant 내에 있는 ZIP 라이브러리는 자바의 ZIP 라이브러리와 인터페이스가 거의 동일하기 때문에 어렵지 않게 수정할 수 있다.

Posted by 알 수 없는 사용자
,