상세 컨텐츠

본문 제목

xml 오류 : XML 원본 파일을 볼 수 없습니다.

개발

by 동동주1123 2010. 1. 31. 10:59

본문



간혹 웹서비스를 통해서 다른 업체에게 데이타를 제공해 주거나 역으로 데이타를 가져와야 할 경우들이 있습니다. 그런데 이기종간에 통신일 수도 있고 데이타를 통일성있게 만들기 위해서라도 xml로 데이타를 주고 업체나 개발자는 이를 파싱해서 데이타를 많이 사용할 것입니다.

이런 작업들은 xml이라는 형식을 통해서 주고 받기 때문에 서로 다른언어나 시스템일지라도 개발자들은 각자 그 규칙에 맞춰서 작업을 해놓으면 별일이 없는한 이를주고받는 툴을 만드는데 오랜시간이 걸리지는 않을것입니다.

자 그런데 간혹이런문제가 생김니다.
utf-8이든 euc-kr이든 서로 맞춰놓은 규칙에 의거해서 분명히 만들었는데 업체에서는 데이타를 가져오지 못한다고 난리칠때가 있습니다.

그런데 소스를 보거나 화면에 뿌려지는 xml데이타를 확인해보면 분명 이상이 발견되지 않는거죠.

첫번째 단계가 아마 권한 문제일것입니다.
이문제는 일단 소켓이 막혀있는지 해당디렉토리의 권한이 제대로 되어있는지 확인하시고 서버관리자에게 살며시 문의 하시면됩니다. "되게 해달라고..." 아파치소켓이 막혀있는지 확인하시고 만일 열려있다면 작업하시는 디렉토리에 해당권한을 적용해 달라고 한뒤에 아파치서버를 재시작하시면됩니다.
이 문제는 구글링하면 많은 답변을 찾을 수 있으므로 넘어가겠습니다.

다음 두번째 , 바로 xml자체의 문제일 경우입니다. 이건 구글링해도 딱히 답변이 나오지 않더군요. 
그 문제가 바로 상대클라이언트가 계속 데이타를 가져가려 하지만 권한문제가 해결되었음에도 불구하고 테이타에 접근하지 못하는 문제가 발생할 경우입니다. 해당데이타를 브라우저로 보면 정상적으로 출력되는데 말이죠. 

서로 우리는 문제 없다며 화면을 보여주면서 방황하죠. 그러다 우연히도 소스보기를 해보면 해당페이지가 에다음과 같은 에러메세지를 출력합니다.

"XML 원본 파일을 볼 수 없습니다"


참으로 난감한 에러메세지입니다. 왜?는 없고 무작적 볼수 없다고 나오고 구글링을 해봐도 별다를 답니 없더군요. 아마 많이 만나게 되는 글이 header 를 지웠더니 잘되더라는 글일것입니다.

실제로 이 답은 정확한 답이였습니다. 다만 하나의 사건에 한정된거라 감을 잡기 힘든게 문제였지만요.


한참을 뒤지고 바꿔보고 하다 평소에 사용하던 구글크롬에서 해당페이지를 띄워보니 메세지는 여전하더군요. 그러다 혹시나 해서 크롬에 내장된 디버그 기능을 이용한뒤에 이유를 알게 되었습니다.


정확하게 만들어진 xml데이타는 실제로 xml 데이타가 맞습니다. 그리고 문제가 있던 소스도 브라우저 화면에 출력되는것을 보면 xml데이타처럼 보이는것은 맞고 , 브라우저 상에서 두 데이타를 동일하게 보입니다. 하지만 실제로 디버그를 통해서 확인해보니, 문제가 있는 데이타는 평소에 사용하던 config 파일을 통해서 (웹사이트의 세팅값과 상단에 호출되는) db 에 접근을 하는데 이녀석이 운영중인 사이트에 사용하는 include되는 파일이다 보니 값을 뿌려줄때 xml 앞뒤로 <html></html>을 넣어 버리더군요.

즉 보이는건 xml데이타인데 실제로 출력해주는 데이타는 <html>데이타이다보니 xml을 가져가서 파싱해야되는 클라이언트 툴들이 이를 읽지못하는 것이 였습니다.

결국 이문제는 사용하던  include 파일을 사용하지않고 해당페이지에서 db커넥션을 하도록 해서 한파일에서 html부분이 들어가지않도록 작성후 문제가 해결되었습니다.

비슷한 문제로 고민하시던 분들 참고하셔서 고민해결하시길...

관련글 더보기