SOA Composites with nillable="true" Elements Throw Fault After Upgrade to 11.1.1.6.0 or 11.1.1.7.0 with: "OWS-04086 javax.xml.rpc.soap.SOAPFaultException" "Schema validation failed" and "Element not completed" (Doc ID 1505019.1)

Last updated on MARCH 08, 2017

Applies to:

Oracle SOA Suite - Version 11.1.1.6.0 to 11.1.1.7.0 [Release 11gR1]
Information in this document applies to any platform.
***Checked for relevance on 02-June-2014***

Symptoms

After upgrading from 11.1.1.3.0 to 11.1.1.6.0 version SOA Suite, you've observed a change in schema validation behavior.  The same issue has been found when upgrading to 11.1.1.7.0 version SOA Suite.

Deployed composite applications which previously worked with Payload Validation Enabled in 11.1.1.3.0 are now giving OWS-04086, OWS-04115 and BEA-000000 errors, like:

OWS-04086 javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload.
Please ensure at the message sender level that the data sent is schema compliant.
Element not completed: 'processResponse'

with
BEA-000000 javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload.
Please ensure at the message sender level that the data sent is schema compliant.
Element not completed: 'processResponse'


OWS-04115 An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException:
Schema validation failed for message part payload.
Please ensure at the message sender level that the data sent is schema compliant.
Element not completed: 'processResponse'.

with
BEA-000000 An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException:
Schema validation failed for message part payload.
Please ensure at the message sender level that the data sent is schema compliant.
Element not completed: 'processResponse'


For example, if you have an xsd with a processResponse element defined as follows:
<element name="processResponse">
<complexType>
<sequence>
<element name="InterfaceHeaderId" type="string" nillable="false" />
<element name="InterfaceLineId" type="string" minOccurs="1" maxOccurs="unbounded" nillable="false" />
<element name="Status" type="string" nillable="false" />
<element name="Message" type="string" nillable="true" />
</sequence>
</complexType>
</element>

Now, suppose you have a BPEL Process which takes some string as input then uses the above definition as the format for an outputVariable.  Also, suppose the process then builds the outputVariable like this:
<outputVariable>
<part  name="payload">
<processResponse>
<client:InterfaceHeaderId>1</client:InterfaceHeaderId>
<client:InterfaceLineId>someInput</client:InterfaceLineId>
<client:Status>Success</client:Status>
</processResponse>
</part>
</outputVariable>

In your 11.1.1.3.0 environment, when Payload Validation is Enabled, this BPEL Process works without fault. 

However, in 11.1.1.6.0 for the same process, when Payload Validation is Enabled you see the following errors:

  1.   In the <DOMAIN_HOME>/servers/soa_server1/logs/soa_server1-diagnostic-1.log file.
    [2012-10-31T15:23:12.290-06:00] [soa_server1] [ERROR] [OWS-04086] [oracle.webservices.service] [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId:] [ecid: 32e3f1b4becd1935:-56de2e4:13ab85d3317:-8000-0000000000000169,0:2] [APP: soa-infra] [composite_name: ChildBPELProject] javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload. Please ensure at the message sender level that the data sent is schema compliant. Element not completed: 'processResponse'[[ at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.generateSoapFaultException(WebServiceEntryBindingComponent.java:1193) at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:971) at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113) at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187) at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1112) at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581) at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:233) at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193) at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:485) at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:528) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119) at java.security.AccessController.doPrivileged(Native Method) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:252) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) ]] [2012-10-31T15:23:12.292-06:00] [soa_server1] [ERROR] [OWS-04115] [oracle.webservices.service] [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId:] [ecid: 32e3f1b4becd1935:-56de2e4:13ab85d3317:-8000-0000000000000169,0:2] [APP: soa-infra] [composite_name: ChildBPELProject] An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload. Please ensure at the message sender level that the data sent is schema compliant. Element not completed: 'processResponse'.
  2. In the <DOMAIN_HOME>/servers/soa_server1/logs/soa_server1.out file.
    <Oct 31, 2012 3:23:12 PM MDT> <Error> <oracle.webservices.service> <OWS-04086> <javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload. Please ensure at the message sender level that the data sent is schema compliant. Element not completed: 'processResponse'
        at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.generateSoapFaultException(WebServiceEntryBindingComponent.java:1193)
        at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:971)
        at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
        at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
        at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1112)
        at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
        at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:233)
        at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193)
        at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:485)
        at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:528)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:252)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    >
    <Oct 31, 2012 3:23:12 PM MDT> <Error> <oracle.webservices.service> <BEA-000000> <javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload. Please ensure at the message sender level that the data sent is schema compliant. Element not completed: 'processResponse'
        at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.generateSoapFaultException(WebServiceEntryBindingComponent.java:1193)
        at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:971)
        at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
        at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
        at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1112)
        at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
        at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:233)
        at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193)
        at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:485)
        at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:528)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:252)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    >
    <Oct 31, 2012 3:23:12 PM MDT> <Error> <oracle.webservices.service> <OWS-04115> <An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload. Please ensure at the message sender level that the data sent is schema compliant. Element not completed: 'processResponse'.>
    <Oct 31, 2012 3:23:12 PM MDT> <Error> <oracle.webservices.service> <BEA-000000> <An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload. Please ensure at the message sender level that the data sent is schema compliant. Element not completed: 'processResponse'.>
  3. In the <DOMAIN_HOME>/servers/soa_server1/logs/soa_server1.log file.
    ####<Oct 31, 2012 3:23:12 PM MDT> <Error> <oracle.webservices.service> <support-soa> <soa_server1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <32e3f1b4becd1935:-56de2e4:13ab85d3317:-8000-0000000000000169> <1351718592290> <BEA-000000> <javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload. Please ensure at the message sender level that the data sent is schema compliant. Element not completed: 'processResponse'
        at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.generateSoapFaultException(WebServiceEntryBindingComponent.java:1193)
        at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:971)
        at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
        at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
        at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1112)
        at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
        at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:233)
        at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193)
        at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:485)
        at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:528)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:252)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    >
    ####<Oct 31, 2012 3:23:12 PM MDT> <Error> <oracle.webservices.service> <support-soa> <soa_server1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <32e3f1b4becd1935:-56de2e4:13ab85d3317:-8000-0000000000000169> <1351718592292> <BEA-000000> <An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException: Schema validation failed for message part payload. Please ensure at the message sender level that the data sent is schema compliant. Element not completed: 'processResponse'.>

Changes

 You've upgraded your 11.1.1.3.0 SOA Suite to 11.1.1.6.0 or 11.1.1.7.0.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms