주제: BlogApi 의문점 - 계속해서
좀처럼 답을 얻지 못하던 중에 어제 야근 중 시간이 좀 남아서 몇가지 해 보았습니다.
blogger.getUsersBlogs 를 할 때를 패킷캡쳐 하여 확인해 보았습니다.
XML로 <methodResponse>라는게 오는군요.
값을 보니, url, blogid, blogName 이 옵니다.
XML을 볼 때는 특별한 문제가 없더군요. 즉, fault 와 같은 어떠한 값도 없이 제대로 XML이 왔는데, fail이 난다는 것이 이해하기 어려워서, 간단하게 java로 프로그램을 짜서 돌려 봤습니다.
InputStream으로 넘어온 값을 parse 하는 순간에 에러가 나더군요.
Exception은 아래와 같습니다.
[Fatal Error] :3:2: The markup in the document following the root element must be well-formed.
org.apache.xmlrpc.client.XmlRpcClientException: Failed to parse server's response: The markup in the document following the root element must be well-formed.
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:204)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:158)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:115)
at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158)
at MetaWebLogClient.main(MetaWebLogClient.java:27)
Caused by: org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:202)
... 7 more
Caused by:
org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:202)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:158)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:115)
at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158)
at MetaWebLogClient.main(MetaWebLogClient.java:27)
JavaClient: XML-RPC Fault #0: org.apache.xmlrpc.client.XmlRpcClientException: Failed to parse server's response: The markup in the document following the root element must be well-formed.
InputStream의 값을 찍어 봤더니 아래와 같이 찍혔습니다.
제대로 XML이 찍혔습니다..;;;; 여기에 긁어서 카피 했더니 태그라서 그런지 안나오네요..;;;;;
저게, 왜 well-formed 이 아니라는 건지 도무지 모르겠네요.
Exception이 난 것을 보면 parse() 중에 에러가 난 것으로 보아, 뭔가 이상한 값이 있나 본데요.
이 부분에 대하여 혹시 아시는 분 없나요?
unary (2010-02-05 14:02:15)에 의해 마지막으로 수정