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[데이터의 샘플입니다.]]>
참조링크: http://www.cadvance.org/?leftmenu=doc/include/total_menu.asp&mainpage=doc/xml/xml_doc/xml_cdata.asp
IBM - old/WAS 문제&해결
댓글