본문 바로가기
IBM - old/WAS 문제&해결

org.xml.sax.SAXParseException: 일반적인 "nbsp" 엔티티가 참조되었으나 선언되지 않았습니다.

by freeman98 2016. 5. 6.

1. WAS 버전 : WebSphere ND v6.1.0.21

2. OS : AIX v5.3 9L

3. Error message :
[09. 5. 6   12:57:04:406 KST] 00000057 WebServicesSe E com.ibm.ws.webservices.engine.transport.http.WebServicesServlet doPost W
SWS3227E:  오류: 예외:
                                 WebServicesFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
 faultString: org.xml.sax.SAXParseException: 일반적인 "nbsp" 엔티티가 참조되었으나 선언되지 않았습니다. Message being parsed:
 faultActor: null
 faultDetail:

org.xml.sax.SAXParseException: 일반적인 "nbsp" 엔티티가 참조되었으나 선언되지 않았습니다. Message being parsed:
        at com.ibm.ws.webservices.engine.WebServicesFault.makeFault(WebServicesFault.java:208)
        at com.ibm.ws.webservices.engine.SOAPPart._getSOAPEnvelope(SOAPPart.java:1062)
        at com.ibm.ws.webservices.engine.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:604)
        at com.ibm.ws.webservices.engine.SOAPPart.getEnvelope(SOAPPart.java:632)
        at com.ibm.ws.webservices.engine.handlers.jaxrpc.JAXRPCHandlerChain.handleRequest(JAXRPCHandlerChain.java:301)
        at com.ibm.ws.webservices.engine.handlers.jaxrpc.JAXRPCHandler.invokeServerRequestHandler(JAXRPCHandler.java:506)
        at com.ibm.ws.webservices.engine.handlers.jaxrpc.JAXRPCHandler$1.invoke(JAXRPCHandler.java:380)
        at com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:208)
        at com.ibm.ws.webservices.engine.WebServicesEngine.invoke(WebServicesEngine.java:336)
        at com.ibm.ws.webservices.engine.transport.http.WebServicesServlet.doPost(WebServicesServlet.java:831)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
        at com.ibm.ws.webservices.engine.transport.http.WebServicesServletBase.service(WebServicesServletBase.java:341)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:282)
        at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:459)
        at com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java:265)
        at com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java:262)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1096)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:570)
        at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
        at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:748)
        at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1466)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:119)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:267)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.j
ava:214)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:556)
        at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:606)
        at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:979)
        at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1064)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
Caused by: org.xml.sax.SAXParseException: 일반적인 "nbsp" 엔티티가 참조되었으나 선언되지 않았습니다.
        at com.ibm.xml.xlxp.api.sax.impl.SAX2ParserBase.reportFatalError(SAX2ParserBase.java:528)
        at com.ibm.xml.xlxp.api.was.WSXMLReader$WSScannerHelper.produceFatalErrorEvent(WSXMLReader.java:469)
        at com.ibm.xml.xlxp.api.util.SimpleScannerHelper.reportFatalError(SimpleScannerHelper.java:1458)
        at com.ibm.xml.xlxp.scan.DTDScanner.undeclaredEntityInContent(DTDScanner.java:3127)
        at com.ibm.xml.xlxp.scan.DTDScanner.entityReferenceInContent(DTDScanner.java:3668)
        at com.ibm.xml.xlxp.scan.DocumentEntityScanner.entityReferenceInContent(DocumentEntityScanner.java:4256)
        at com.ibm.xml.xlxp.scan.DocumentEntityScanner.checkReferenceInContent(DocumentEntityScanner.java:4240)
        at com.ibm.xml.xlxp.scan.DocumentEntityScanner.scanContentUnbuffered2(DocumentEntityScanner.java:2731)
        at com.ibm.xml.xlxp.scan.DocumentEntityScanner.scanContentUnbuffered(DocumentEntityScanner.java:2580)
        at com.ibm.xml.xlxp.api.util.SimpleScannerHelper.scanContentUnbuffered(SimpleScannerHelper.java:1237)

        at com.ibm.xml.xlxp.api.util.SimpleScannerHelper.scanContentUnbuffered(SimpleScannerHelper.java:1237)
        at com.ibm.xml.xlxp.scan.DocumentEntityScanner.stateUnbufferedContent(DocumentEntityScanner.java:510)
        at com.ibm.xml.xlxp.scan.DocumentEntityScanner.produceEvent(DocumentEntityScanner.java:580)
        at com.ibm.xml.xlxp.api.util.SimpleScannerHelper.produceEvents(SimpleScannerHelper.java:329)
        at com.ibm.xml.xlxp.api.util.SimpleScannerHelper.parseDocumentEntity(SimpleScannerHelper.java:325)
        at com.ibm.xml.xlxp.api.was.WSXMLReader.parseEvents(WSXMLReader.java:118)
        at com.ibm.xml.xlxp.api.sax.impl.SAX2ParserBase.parseEntity(SAX2ParserBase.java:1101)
        at com.ibm.xml.xlxp.api.sax.impl.SAX2ParserBase.parse(SAX2ParserBase.java:1139)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at com.ibm.ws.webservices.engine.utils.WebServicesParser.parse(WebServicesParser.java:361)
        at com.ibm.ws.webservices.engine.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:269)
        at com.ibm.ws.webservices.engine.SOAPPart._getSOAPEnvelope(SOAPPart.java:1036)
        ... 32 more

4.예상 이유 : WebService 를 사용하여 SOAP 으로 데이터를 주고 받는 경우 주고 받는 데이터에 태그성인   데이터가 포함되어 있으면, 파싱할때 에러가 발생

5. 조치 방안 : 테그성 데이터가 포함된 경우라도 Text 로 인식하고 파싱하기 위하여 CDATA로 묶어서 보내기를 권고
예: <![CDATA[데이터의&nbsp;샘플입니다.]]>
참조링크: http://www.cadvance.org/?leftmenu=doc/include/total_menu.asp&mainpage=doc/xml/xml_doc/xml_cdata.asp

댓글