I am running CXF 2.4.2 based web services on Tomcat 7. When put under a moderately heavy load I am occasionally receiving the following error:
org.apache.cxf.interceptor.Fault: Marshalling Error: cvc-complex-type.2.4.b: The content of element ... is not complete. One of ... is expected. My web services are generated through the CXF Wsdl2Java from my wsdl and xsd files. The function I am testing uses MTOM to return binary data if that makes a difference, however the part that fails validation is not the binary data portion of the response. I have verified through debugging that the response structure returned by the function in my service implementation is filled out completely and am pretty confident at this point that it is not my code that has a concurrency issue. I believe that the xml marshaller is the problem. I am pretty new to CXF and and after hunting around online I have found that it looks like CXF uses the JAXB marshaller under the hood and that the JAXB marshaller is not thread safe. However, it also sounds like CXF wraps the marshaller and makes it thread safe. I was looking for a way to extend the marshaller class to make the functions synchronized to test the theory but I have not found a way to specify a marshaller to the CXF context. Does anyone know what is happening here? Is there some setting that I missed? Let me know if you need more information. Thanks in advance. -- View this message in context: http://cxf.547215.n5.nabble.com/CXF-Marshalling-Concurrency-Problem-tp5050439p5050439.html Sent from the cxf-user mailing list archive at Nabble.com.
