Error with new JBossWS
cbax007 Feb 15, 2006 3:38 PMI recently switched over to using JBossWS from WS4EE to take advantage of the speedier serialization/deserialization. I'm very impressed with the modifications so far. I did however run into an issue with the new soap stack. I have a String property on one of my bean objects that gets returned from a webservice call. The value of that String property can have characters like '&' in it. I did not have any issues with WS4EE, but now I'm getting the following exception:
12:34:19,853 ERROR [STDERR] [Fatal Error] :1:1014: The entity name must immediately follow the '&' in the entity reference. 12:34:19,853 ERROR [SOAPFaultExceptionHelper] SOAP request exception javax.xml.rpc.JAXRPCException: Cannot create or send response message at org.jboss.ws.server.ServiceEndpoint.postProcessResponse(ServiceEndpoint.java:298) at org.jboss.ws.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:228) at org.jboss.ws.server.ServiceEndpointServlet.doPost(ServiceEndpointServlet.java:110) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: javax.xml.rpc.JAXRPCException: java.io.IOException: org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference. at org.jboss.ws.soap.SOAPContentElement.expandToDOM(SOAPContentElement.java:893) at org.jboss.ws.soap.SOAPContentElement.getChildNodes(SOAPContentElement.java:761) at org.jboss.util.xml.DOMWriter.printInternal(DOMWriter.java:166) at org.jboss.util.xml.DOMWriter.printInternal(DOMWriter.java:225) at org.jboss.util.xml.DOMWriter.printInternal(DOMWriter.java:225) at org.jboss.util.xml.DOMWriter.print(DOMWriter.java:144) at org.jboss.util.xml.DOMWriter.printNode(DOMWriter.java:93) at org.jboss.ws.server.ServiceEndpoint.postProcessResponse(ServiceEndpoint.java:292) ... 23 more Caused by: java.io.IOException: org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference. at org.jboss.util.xml.DOMUtils.parse(DOMUtils.java:117) at org.jboss.util.xml.DOMUtils.parse(DOMUtils.java:96) at org.jboss.ws.soap.SOAPContentElement.expandToDOM(SOAPContentElement.java:849) ... 30 more
Is there something I have to do to ensure that those invalid XML characters get properly handled?