Hi , Can you show me the rule DSL ? Maybe we can just enable the schema validation at a certain endpoint.
Willem mvsunil wrote: > Hi Ashwin, > > Yes I agree schema validation happens both for request and response, But i > am sending a response with all objects set. The error i get is something to > do with target namespace i guess but not sure. Is there a way to disable > schema validation in response alone. > > Thanks, > Sunil. > > > Ashwin Karpe wrote: >> Hi Sunil, >> >> Schema validation happen on both the incoming and outgoing payloads to >> validate conformace against WSDL. If the response is empty since it was >> not set by your Impl code, the JAXBMarshaller will throw such an >> exception. >> >> Note that JAXB is the standard the converts your java object into XML that >> is place in the SOAP envelope before dispactching it to the client. >> >> Hope this helps. >> >> Cheers, >> >> Ashwin... >> >> >> mvsunil wrote: >>> Hi willem, >>> >>> Thanks for the reply. >>> >>> I get this error only in response. I am able to get the input values from >>> the request to my bean and i am able to process it. The exception occurs >>> in the response. The whole thing works fine when the schema validation is >>> set to false. >>> >>> Thanks, >>> Sunil. >>> >>> >>> willem.jiang wrote: >>>> Hi , >>>> >>>> Does your request's uri element's value be empty string? >>>> If the WSDL has such of restriction, you will get the error when you >>>> enable the schema check. >>>> >>>> Willem >>>> mvsunil wrote: >>>>> Hi, >>>>> >>>>> I am using CXF webservice as camel from uri and to uri is to a bean >>>>> which >>>>> does a jdbc operation and return the result of the jdbc operation. >>>>> generated >>>>> java code using wsdl2Java of cxf. The whole thing works fine when the >>>>> schema validation of cxf is set to false. When i enable the schema >>>>> validation the request comes to the bean but when it tried to send the >>>>> response i get "Marshalling Error: The uri may not be theempty string". >>>>> I am >>>>> using apache-cxf-2.1.2 and camel apache-camel-1.4.0 >>>>> >>>>> The exception i get is >>>>> >>>>> org.apache.cxf.interceptor.Fault: Marshalling Error: The uri may not be >>>>> theempty string. >>>>> at >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:176) >>>>> at >>>>> org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:131) >>>>> at >>>>> org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:113) >>>>> at >>>>> org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) >>>>> at >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) >>>>> at >>>>> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74) >>>>> at >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) >>>>> at >>>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78) >>>>> at >>>>> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92) >>>>> at >>>>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:283) >>>>> at >>>>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:166) >>>>> at >>>>> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:174) >>>>> at >>>>> org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:152) >>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) >>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) >>>>> 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:283) >>>>> at >>>>> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) >>>>> at >>>>> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3231) >>>>> at >>>>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) >>>>> at >>>>> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) >>>>> at >>>>> weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002) >>>>> at >>>>> weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908) >>>>> at >>>>> weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362) >>>>> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) >>>>> at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) >>>>> Caused by: java.lang.IllegalArgumentException: The uri may not be >>>>> theempty >>>>> string. >>>>> at >>>>> weblogic.xml.stax.util.NamespaceContextImpl.getPrefix(NamespaceContextImpl.java:76) >>>>> at >>>>> org.apache.cxf.staxutils.CachingXmlEventWriter$NSContext.getPrefix(CachingXmlEventWriter.java:266) >>>>> at >>>>> com.sun.xml.bind.v2.runtime.StAXPostInitAction.run(StAXPostInitAction.java:95) >>>>> at >>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.prewrite(MarshallerImpl.java:365) >>>>> at >>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:327) >>>>> at >>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:175) >>>>> at >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:377) >>>>> at >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:155) >>>>> ... 26 more >>>> >>>> >>> >> >
