나는 토픽을 반복하는 사람들을 죄송합니다. 하지만 난 여기에 대답을 이해하지 못합니다소켓을 통한 JAXB 언 마샬링 문제
https://stackoverflow.com/a/9598909/1404852 "Kafka"는 XMLEventWriter를 사용하여 마샬링 차단을 수정한다고했습니다. Stream Strings로 작성한 다음 나에게 적합하지 않은 비동기로 연결하도록 제안합니다.
나는 그러한 코드를 가지고 있습니다.
public class InputThread implements Runnable {
private BufferedReader in;
private String fserver; // = CharBuffer.allocate(0);
private static final Logger LOG = Logger.getLogger(InputThread.class);
private JAXBContext jaxbContext;
private Unmarshaller jaxbUnmarshaller;
private XMLProtocol protocol;
public InputThread(Socket fromserver, BufferedReader in) throws IOException, JAXBException {
jaxbContext = JAXBContext.newInstance(XMLProtocol.class);
jaxbUnmarshaller = jaxbContext.createUnmarshaller();
this.in = in;
new Thread(this);
}
public void run() {
while (true) {
try {
if (in.ready())
protocol = (XMLProtocol) jaxbUnmarshaller.unmarshal(in);
}
}
}
}
또는 서버 측에서 스트림의 끝 부분을 삽입해야합니까? 그러나 나는 JAXB가 무엇이든 할 수 있다고 생각한다. ...
예외는 무엇입니까? –
그것은 차단합니다. 왜냐하면 스트림의 끝 부분을 볼 수 없기 때문입니다. –
죄송합니다. 예외가 발생합니다. DefaultValidationEventHandler : [FATAL_ERROR] : 내용이 프롤로그에서 허용되지 않습니다. –