첨부파일 다운로드 하는 웹서비스 호출시 문제
- 작성자 :
- 김*진
- 작성일 :
- 2014-08-06 21:56:05
- 조회수 :
- 1,432
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
안녕하세요
이번에 구현하려는 웹서비스에 요청 결과로 첨부파일이 전문에 포함되어 있습니다.
cxf 2.1 로 생성한 stub에 있는 메서드를 호출하면 아래와 같은 에러가 발생하여
2014-08-05 16:47:19,484 DEBUG [java.sql.PreparedStatement] {pstm-100151} Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, null]
8월 05, 2014 4:47:26 오후 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
정보: Interceptor has thrown exception, unwinding now
org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
at org.apache.axiom.om.impl.dom.ParentNode.insertBefore(ParentNode.java:235)
at org.apache.axiom.om.impl.dom.ParentNode.insertBefore(ParentNode.java:205)
at org.apache.axiom.om.impl.dom.NodeImpl.appendChild(NodeImpl.java:199)
at org.apache.axis2.saaj.SOAPPartImpl.appendChild(SOAPPartImpl.java:948)
at org.apache.cxf.staxutils.W3CDOMStreamWriter.newChild(W3CDOMStreamWriter.java:93)
at org.apache.cxf.staxutils.W3CDOMStreamWriter.writeStartElement(W3CDOMStreamWriter.java:110)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoapEnvelopeStart(SoapOutInterceptor.java:118)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:80)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:61)
stub를 사용하지 않고 SOAPMessage를 직접 생성하여 호출을 해봤습니다.
호출결과는 아래와 같은 오류가 발생합니다.
==================================================
org.apache.axiom.om.OMException: Part content ID cannot be blank for non root MIME parts
at org.apache.axiom.attachments.MIMEMessage.getNextPartDataHandler(MIMEMessage.java:315)
at org.apache.axiom.attachments.MIMEMessage.fetchAllParts(MIMEMessage.java:264)
at org.apache.axiom.attachments.MIMEMessage.getContentIDs(MIMEMessage.java:271)
at org.apache.axiom.attachments.Attachments.getAllContentIDs(Attachments.java:298)
at org.apache.axis2.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:214)
content ID 가 비어있어 그런가 해서 확인해봤는데 비어있지는 않았습니다.
그래서 이번에는 전자정부 프레임웍을 사용하지 않고 단순하게 java 파일만 만들고
SOAPMessage를 생성하여 호출하였더니 응답전문에 바이너리 문자열까지 찍히는것을 확인했습니다.
위와같은 오류의 해결 방법이나 도움 부탁드립니다.
이번에 구현하려는 웹서비스에 요청 결과로 첨부파일이 전문에 포함되어 있습니다.
cxf 2.1 로 생성한 stub에 있는 메서드를 호출하면 아래와 같은 에러가 발생하여
2014-08-05 16:47:19,484 DEBUG [java.sql.PreparedStatement] {pstm-100151} Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, null]
8월 05, 2014 4:47:26 오후 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
정보: Interceptor has thrown exception, unwinding now
org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
at org.apache.axiom.om.impl.dom.ParentNode.insertBefore(ParentNode.java:235)
at org.apache.axiom.om.impl.dom.ParentNode.insertBefore(ParentNode.java:205)
at org.apache.axiom.om.impl.dom.NodeImpl.appendChild(NodeImpl.java:199)
at org.apache.axis2.saaj.SOAPPartImpl.appendChild(SOAPPartImpl.java:948)
at org.apache.cxf.staxutils.W3CDOMStreamWriter.newChild(W3CDOMStreamWriter.java:93)
at org.apache.cxf.staxutils.W3CDOMStreamWriter.writeStartElement(W3CDOMStreamWriter.java:110)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoapEnvelopeStart(SoapOutInterceptor.java:118)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:80)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:61)
stub를 사용하지 않고 SOAPMessage를 직접 생성하여 호출을 해봤습니다.
호출결과는 아래와 같은 오류가 발생합니다.
==================================================
org.apache.axiom.om.OMException: Part content ID cannot be blank for non root MIME parts
at org.apache.axiom.attachments.MIMEMessage.getNextPartDataHandler(MIMEMessage.java:315)
at org.apache.axiom.attachments.MIMEMessage.fetchAllParts(MIMEMessage.java:264)
at org.apache.axiom.attachments.MIMEMessage.getContentIDs(MIMEMessage.java:271)
at org.apache.axiom.attachments.Attachments.getAllContentIDs(Attachments.java:298)
at org.apache.axis2.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:214)
content ID 가 비어있어 그런가 해서 확인해봤는데 비어있지는 않았습니다.
그래서 이번에는 전자정부 프레임웍을 사용하지 않고 단순하게 java 파일만 만들고
SOAPMessage를 생성하여 호출하였더니 응답전문에 바이너리 문자열까지 찍히는것을 확인했습니다.
위와같은 오류의 해결 방법이나 도움 부탁드립니다.
A
안녕하세요. 김학진님.
HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
이 오류는 XML 문서 상에서 계층적으로 허용되지 않는 element가 추가된 경우인데, XML문서 자체를 직접 구성하시는 경우라 아니시라면 CXF 버전을 상위 버전으로 변경해 보셔야 할 것 같습니다. (내부 처리 상의 문제)
2.7.12 버전으로 확인 부탁드립니다.
그럼, 즐거운 하루되십시오.
감사합니다.
HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
이 오류는 XML 문서 상에서 계층적으로 허용되지 않는 element가 추가된 경우인데, XML문서 자체를 직접 구성하시는 경우라 아니시라면 CXF 버전을 상위 버전으로 변경해 보셔야 할 것 같습니다. (내부 처리 상의 문제)
2.7.12 버전으로 확인 부탁드립니다.
그럼, 즐거운 하루되십시오.
감사합니다.