Why is this validation being done in the MessageModeOutInterceptor instead of the org.apache.cxf.databinding.source.XMLStreamDataWriter which is part of the Source databinding? The incoming validation is done in the Source databinding.
Dan On Aug 13, 2013, at 6:37 AM, [email protected] wrote: > Author: ffang > Date: Tue Aug 13 10:37:58 2013 > New Revision: 1513427 > > URL: http://svn.apache.org/r1513427 > Log: > [CXF-5169]DISPATCH/PROVIDER doesn't work for OUT message validation > > Added: > > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/hello_world_with_restriction.wsdl > > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/GreetMeDocLiteralRespExceedLength.xml > Modified: > > cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java > > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java > > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java > > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/XML_GreetMeDocLiteralResp.xml > > Modified: > cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java > URL: > http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java?rev=1513427&r1=1513426&r2=1513427&view=diff > ============================================================================== > --- > cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java > (original) > +++ > cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java > Tue Aug 13 10:37:58 2013 > @@ -34,10 +34,15 @@ import javax.xml.soap.SOAPPart; > import javax.xml.stream.XMLStreamException; > import javax.xml.stream.XMLStreamWriter; > import javax.xml.transform.Source; > +import javax.xml.transform.dom.DOMSource; > +import javax.xml.validation.Schema; > > import org.w3c.dom.DocumentFragment; > import org.w3c.dom.Node; > > +import org.xml.sax.SAXException; > + > +import org.apache.cxf.annotations.SchemaValidation.SchemaValidationType; > import org.apache.cxf.attachment.AttachmentDeserializer; > import org.apache.cxf.binding.soap.Soap12; > import org.apache.cxf.binding.soap.SoapFault; > @@ -48,6 +53,7 @@ import org.apache.cxf.binding.soap.saaj. > import org.apache.cxf.binding.soap.saaj.SAAJStreamWriter; > import org.apache.cxf.binding.soap.saaj.SAAJUtils; > import org.apache.cxf.helpers.IOUtils; > +import org.apache.cxf.helpers.ServiceUtils; > import org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor; > import org.apache.cxf.interceptor.Fault; > import org.apache.cxf.interceptor.StaxOutInterceptor; > @@ -58,10 +64,13 @@ import org.apache.cxf.message.MessageImp > import org.apache.cxf.message.MessageUtils; > import org.apache.cxf.phase.AbstractPhaseInterceptor; > import org.apache.cxf.phase.Phase; > +import org.apache.cxf.service.Service; > import org.apache.cxf.service.model.BindingMessageInfo; > import org.apache.cxf.service.model.BindingOperationInfo; > +import org.apache.cxf.service.model.ServiceModelUtil; > import org.apache.cxf.staxutils.StaxUtils; > import org.apache.cxf.staxutils.W3CDOMStreamWriter; > +import org.apache.cxf.ws.addressing.EndpointReferenceUtils; > > public class MessageModeOutInterceptor extends > AbstractPhaseInterceptor<Message> { > MessageModeOutInterceptorInternal internal; > @@ -81,6 +90,7 @@ public class MessageModeOutInterceptor e > this.bindingName = bname; > } > public void handleMessage(Message message) throws Fault { > + checkSchemaValidation(message); > BindingOperationInfo bop = > message.getExchange().get(BindingOperationInfo.class); > if (bop != null && !bindingName.equals(bop.getBinding().getName())) { > return; > @@ -159,6 +169,7 @@ public class MessageModeOutInterceptor e > Object o = list.get(0); > if (o instanceof SOAPMessage) { > SOAPMessage soapMessage = (SOAPMessage)o; > + > if (soapMessage.countAttachments() > 0) { > message.put("write.attachments", Boolean.TRUE); > } > @@ -291,5 +302,51 @@ public class MessageModeOutInterceptor e > > message.getInterceptorChain().add(SAAJOutEndingInterceptor.INSTANCE); > } > } > + > + private void checkSchemaValidation(Message message) { > + > + if (ServiceUtils.isSchemaValidationEnabled(SchemaValidationType.OUT, > message)) { > + Service service = > ServiceModelUtil.getService(message.getExchange()); > + if (service == null) { > + return; > + } > + Schema schema = > EndpointReferenceUtils.getSchema(service.getServiceInfos().get(0), > + message.getExchange().getBus()); > + if (schema == null) { > + return; > + } > + MessageContentsList list = > (MessageContentsList)message.getContent(List.class); > + if (list == null || list.isEmpty()) { > + return; > + } > + Object o = list.get(0); > + SOAPMessage soapMessage = null; > + > + if (o instanceof SOAPMessage) { > + soapMessage = (SOAPMessage)o; > + > + try { > + DOMSource source = new > DOMSource(soapMessage.getSOAPBody().getFirstChild()); > + schema.newValidator().validate(source); > + } catch (SAXException e) { > + throw new Fault(e); > + } catch (IOException e) { > + throw new Fault(e); > + } catch (SOAPException e) { > + throw new Fault(e); > + } > + } else if (o instanceof Source) { > + Source source = (Source)o; > + try { > + schema.newValidator().validate(source); > + } catch (SAXException e) { > + throw new Fault(e); > + } catch (IOException e) { > + throw new Fault(e); > + } > + } > + } > + > + } > > } > > Modified: > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java > URL: > http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java?rev=1513427&r1=1513426&r2=1513427&view=diff > ============================================================================== > --- > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java > (original) > +++ > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java > Tue Aug 13 10:37:58 2013 > @@ -50,7 +50,7 @@ import org.apache.cxf.helpers.DOMUtils; > //wsdlLocation = "/trunk/testutils/src/main/resources/wsdl/hello_world.wsdl" > @WebServiceProvider(portName = "SoapProviderPort", serviceName = > "SOAPProviderService", > targetNamespace = > "http://apache.org/hello_world_soap_http", > - wsdlLocation = "/wsdl/hello_world.wsdl") > + wsdlLocation = > "/org/apache/cxf/systest/provider/hello_world_with_restriction.wsdl") > @ServiceMode(value = Service.Mode.MESSAGE) > public class HWSoapMessageDocProvider implements Provider<SOAPMessage> { > > @@ -62,6 +62,7 @@ public class HWSoapMessageDocProvider im > > private SOAPMessage sayHiResponse; > private SOAPMessage greetMeResponse; > + private SOAPMessage greetMeResponseExceedMaxLengthRestriction; > > public HWSoapMessageDocProvider() { > > @@ -73,6 +74,9 @@ public class HWSoapMessageDocProvider im > is = > getClass().getResourceAsStream("resources/GreetMeDocLiteralResp.xml"); > greetMeResponse = factory.createMessage(null, is); > is.close(); > + is = > getClass().getResourceAsStream("resources/GreetMeDocLiteralRespExceedLength.xml"); > + greetMeResponseExceedMaxLengthRestriction = > factory.createMessage(null, is); > + is.close(); > } catch (Exception ex) { > ex.printStackTrace(); > } > @@ -103,6 +107,8 @@ public class HWSoapMessageDocProvider im > String v = DOMUtils.getContent(el); > if (v.contains("Return sayHi")) { > response = sayHiResponse; > + } else if (v.contains("exceed maxLength")) { > + response = greetMeResponseExceedMaxLengthRestriction; > } else if (v.contains("throwFault")) { > try { > SOAPFactory f = SOAPFactory.newInstance(); > > Modified: > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java > URL: > http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java?rev=1513427&r1=1513426&r2=1513427&view=diff > ============================================================================== > --- > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java > (original) > +++ > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java > Tue Aug 13 10:37:58 2013 > @@ -21,11 +21,17 @@ package org.apache.cxf.systest.provider; > > import java.lang.reflect.UndeclaredThrowableException; > import java.net.URL; > +import java.util.HashMap; > +import java.util.Map; > > import javax.xml.namespace.QName; > import javax.xml.ws.Endpoint; > import javax.xml.ws.soap.SOAPFaultException; > > +import org.apache.cxf.interceptor.LoggingInInterceptor; > +import org.apache.cxf.interceptor.LoggingOutInterceptor; > +import org.apache.cxf.jaxws.EndpointImpl; > +import org.apache.cxf.message.Message; > import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase; > import org.apache.cxf.testutil.common.AbstractBusTestServerBase; > import org.apache.cxf.testutil.common.TestUtil; > @@ -43,7 +49,14 @@ public class ProviderClientServerTest ex > > protected void run() { > Object implementor = new HWSoapMessageDocProvider(); > - Endpoint.publish(ADDRESS, implementor); > > + Endpoint ep = Endpoint.create(implementor); > + Map<String, Object> map = new HashMap<String, Object>(); > + map.put(Message.SCHEMA_VALIDATION_ENABLED, Boolean.TRUE); > + ep.setProperties(map); > + ((EndpointImpl)ep).getInInterceptors().add(new > LoggingInInterceptor()); > + ((EndpointImpl)ep).getOutInterceptors().add(new > LoggingOutInterceptor()); > + ep.publish(ADDRESS); > + > } > > public static void main(String[] args) { > @@ -112,4 +125,47 @@ public class ProviderClientServerTest ex > > } > > + > + @Test > + public void testSOAPMessageModeDocLitWithSchemaValidation() throws > Exception { > + > + QName serviceName = > + new QName("http://apache.org/hello_world_soap_http", > "SOAPProviderService"); > + QName portName = > + new QName("http://apache.org/hello_world_soap_http", > "SoapProviderPort"); > + > + URL wsdl = getClass().getResource("/wsdl/hello_world.wsdl"); > + assertNotNull(wsdl); > + > + SOAPService service = new SOAPService(wsdl, serviceName); > + assertNotNull(service); > + > + > + try { > + Greeter greeter = service.getPort(portName, Greeter.class); > + setAddress(greeter, ADDRESS); > + try { > + greeter.greetMe("this is a greetMe message which length is > more " > + + "than 30 so that I wanna a schema validation error"); > + fail("Should have thrown an exception"); > + } catch (Exception ex) { > + //expected > + assertTrue(ex.getMessage().contains("cvc-maxLength-valid")); > + } > + > + try { > + String ret = greeter.greetMe("exceed maxLength"); > + System.out.println("the ret is " + ret); > + fail("Should have thrown an exception"); > + } catch (Exception ex) { > + //expected > + assertTrue(ex.getMessage().contains("cvc-maxLength-valid")); > + } > + > + } catch (UndeclaredThrowableException ex) { > + throw (Exception)ex.getCause(); > + } > + > + } > + > } > > Added: > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/hello_world_with_restriction.wsdl > URL: > http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/hello_world_with_restriction.wsdl?rev=1513427&view=auto > ============================================================================== > --- > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/hello_world_with_restriction.wsdl > (added) > +++ > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/hello_world_with_restriction.wsdl > Tue Aug 13 10:37:58 2013 > @@ -0,0 +1,419 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<!-- > + Licensed to the Apache Software Foundation (ASF) under one > + or more contributor license agreements. See the NOTICE file > + distributed with this work for additional information > + regarding copyright ownership. The ASF licenses this file > + to you under the Apache License, Version 2.0 (the > + "License"); you may not use this file except in compliance > + with the License. You may obtain a copy of the License at > + > + http://www.apache.org/licenses/LICENSE-2.0 > + > + Unless required by applicable law or agreed to in writing, > + software distributed under the License is distributed on an > + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + KIND, either express or implied. See the License for the > + specific language governing permissions and limitations > + under the License. > +--> > +<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" > + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > + xmlns:tns="http://apache.org/hello_world_soap_http" > + xmlns:x1="http://apache.org/hello_world_soap_http/types" > + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > + xmlns:xsd="http://www.w3.org/2001/XMLSchema" > + targetNamespace="http://apache.org/hello_world_soap_http" > name="HelloWorld"> > + <wsdl:types> > + <schema > targetNamespace="http://apache.org/hello_world_soap_http/types" > xmlns="http://www.w3.org/2001/XMLSchema" > xmlns:x1="http://apache.org/hello_world_soap_http/types" > elementFormDefault="qualified"> > + <element name="sayHi"> > + <complexType/> > + </element> > + <element name="sayHiResponse"> > + <complexType> > + <sequence> > + <element name="responseType" type="string"/> > + </sequence> > + </complexType> > + </element> > + <element name="greetMe"> > + <complexType> > + <sequence> > + <element name="requestType"> > + <simpleType> > + <restriction base="string"> > + <maxLength value="30"></maxLength> > + </restriction> > + </simpleType> > + </element> > + </sequence> > + </complexType> > + </element> > + <element name="greetMeResponse"> > + <complexType> > + <sequence> > + <element name="responseType"> > + <simpleType> > + <restriction base="string"> > + <maxLength value="30"></maxLength> > + </restriction> > + </simpleType> > + </element> > + </sequence> > + </complexType> > + </element> > + > + <element name="testNillable"> > + <complexType> > + <sequence> > + <element name="NillElem" nillable="true" > type="string"/> > + <element name="intElem" type="int"/> > + </sequence> > + </complexType> > + </element> > + <element name="testNillableResponse"> > + <complexType> > + <sequence> > + <element name="responseType" nillable="true" > type="string"/> > + </sequence> > + </complexType> > + </element> > + > + <element name="greetMeLater"> > + <complexType> > + <sequence> > + <element name="requestType" type="long"/> > + </sequence> > + </complexType> > + </element> > + <element name="greetMeLaterResponse"> > + <complexType> > + <sequence> > + <element name="responseType" type="string"/> > + </sequence> > + </complexType> > + </element> > + <element name="greetMeSometime"> > + <complexType> > + <sequence> > + <element name="requestType" type="string"/> > + </sequence> > + </complexType> > + </element> > + <element name="greetMeSometimeResponse"> > + <complexType> > + <sequence> > + <element name="responseType" type="string"/> > + </sequence> > + </complexType> > + </element> > + <element name="greetMeOneWay"> > + <complexType> > + <sequence> > + <element name="requestType" type="string"/> > + </sequence> > + </complexType> > + </element> > + <element name="testDocLitFault"> > + <complexType> > + <sequence> > + <element name="faultType" type="string"/> > + </sequence> > + </complexType> > + </element> > + <element name="testDocLitFaultResponse"> > + <complexType> > + <sequence/> > + </complexType> > + </element> > + <complexType name="ErrorCode"> > + <sequence> > + <element name="minor" type="short"/> > + <element name="major" type="short"/> > + </sequence> > + </complexType> > + <element name="NoSuchCodeLit"> > + <complexType> > + <sequence> > + <element name="code" type="x1:ErrorCode"/> > + </sequence> > + </complexType> > + </element> > + <element name="BadRecordLit" type="string"/> > + <complexType name="BadRecord"> > + <sequence> > + <element name="reason" type="string"/> > + <element name="code" type="short"/> > + </sequence> > + </complexType> > + <complexType name="addNumbers"> > + <sequence> > + <element name="arg0" type="int"/> > + <element name="arg1" type="int"/> > + </sequence> > + </complexType> > + <element name="addNumbers" type="x1:addNumbers"/> > + <complexType name="addNumbersResponse"> > + <sequence> > + <element name="return" type="int"/> > + </sequence> > + </complexType> > + <element name="addNumbersResponse" type="x1:addNumbersResponse"/> > + <complexType name="stringStruct"> > + <sequence> > + <element name="arg0" type="string"/> > + <element name="arg1" type="string"/> > + </sequence> > + </complexType> > + <element name="BareDocument" type="string"/> > + <element name="BareDocumentResponse"> > + <complexType> > + <sequence> > + <element name="company" type="string"/> > + </sequence> > + <attribute name="id" type="int"/> > + </complexType> > + </element> > + </schema> > + </wsdl:types> > + <wsdl:message name="sayHiRequest"> > + <wsdl:part name="in" element="x1:sayHi"/> > + </wsdl:message> > + <wsdl:message name="sayHiResponse"> > + <wsdl:part name="out" element="x1:sayHiResponse"/> > + </wsdl:message> > + <wsdl:message name="greetMeRequest"> > + <wsdl:part name="in" element="x1:greetMe"/> > + </wsdl:message> > + <wsdl:message name="greetMeResponse"> > + <wsdl:part name="out" element="x1:greetMeResponse"/> > + </wsdl:message> > + <wsdl:message name="testNillableRequest"> > + <wsdl:part name="in" element="x1:testNillable"/> > + </wsdl:message> > + <wsdl:message name="testNillableResponse"> > + <wsdl:part name="out" element="x1:testNillableResponse"/> > + </wsdl:message> > + <wsdl:message name="greetMeLaterRequest"> > + <wsdl:part name="in" element="x1:greetMeLater"/> > + </wsdl:message> > + <wsdl:message name="greetMeLaterResponse"> > + <wsdl:part name="out" element="x1:greetMeLaterResponse"/> > + </wsdl:message> > + <wsdl:message name="greetMeSometimeRequest"> > + <wsdl:part name="in" element="x1:greetMeSometime"/> > + </wsdl:message> > + <wsdl:message name="greetMeSometimeResponse"> > + <wsdl:part name="out" element="x1:greetMeSometimeResponse"/> > + </wsdl:message> > + <wsdl:message name="greetMeOneWayRequest"> > + <wsdl:part name="in" element="x1:greetMeOneWay"/> > + </wsdl:message> > + <wsdl:message name="testDocLitFaultRequest"> > + <wsdl:part name="in" element="x1:testDocLitFault"/> > + </wsdl:message> > + <wsdl:message name="testDocLitFaultResponse"> > + <wsdl:part name="out" element="x1:testDocLitFaultResponse"/> > + </wsdl:message> > + <wsdl:message name="NoSuchCodeLitFault"> > + <wsdl:part name="NoSuchCodeLit" element="x1:NoSuchCodeLit"/> > + </wsdl:message> > + <wsdl:message name="BadRecordLitFault"> > + <wsdl:part name="BadRecordLit" element="x1:BadRecordLit"/> > + </wsdl:message> > + <wsdl:message name="testDocLitBareRequest"> > + <wsdl:part name="in" element="x1:BareDocument"/> > + </wsdl:message> > + <wsdl:message name="testDocLitBareResponse"> > + <wsdl:part name="out" element="x1:BareDocumentResponse"/> > + </wsdl:message> > + <wsdl:portType name="Greeter"> > + <wsdl:operation name="sayHi"> > + <wsdl:input message="tns:sayHiRequest"/> > + <wsdl:output message="tns:sayHiResponse"/> > + </wsdl:operation> > + <wsdl:operation name="greetMe"> > + <wsdl:input message="tns:greetMeRequest"/> > + <wsdl:output message="tns:greetMeResponse"/> > + </wsdl:operation> > + <wsdl:operation name="testNillable"> > + <wsdl:input message="tns:testNillableRequest"/> > + <wsdl:output message="tns:testNillableResponse"/> > + </wsdl:operation> > + <wsdl:operation name="greetMeLater"> > + <wsdl:input message="tns:greetMeLaterRequest"/> > + <wsdl:output message="tns:greetMeLaterResponse"/> > + </wsdl:operation> > + <wsdl:operation name="greetMeSometime"> > + <wsdl:input message="tns:greetMeSometimeRequest"/> > + <wsdl:output message="tns:greetMeSometimeResponse"/> > + </wsdl:operation> > + <wsdl:operation name="greetMeOneWay"> > + <wsdl:input message="tns:greetMeOneWayRequest"/> > + </wsdl:operation> > + <wsdl:operation name="testDocLitFault"> > + <wsdl:input message="tns:testDocLitFaultRequest"/> > + <wsdl:output message="tns:testDocLitFaultResponse"/> > + <wsdl:fault name="NoSuchCodeLitFault" > message="tns:NoSuchCodeLitFault"/> > + <wsdl:fault name="BadRecordLitFault" > message="tns:BadRecordLitFault"/> > + </wsdl:operation> > + > + </wsdl:portType> > + > + <wsdl:portType name="DocLitBare"> > + <wsdl:operation name="testDocLitBare"> > + <wsdl:input name="testDocLitBareRequest" > message="tns:testDocLitBareRequest"/> > + <wsdl:output name="testDocLitBareResponse" > message="tns:testDocLitBareResponse"/> > + </wsdl:operation> > + </wsdl:portType> > + <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter"> > + <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > + <wsdl:operation name="sayHi"> > + <soap:operation style="document"/> > + <wsdl:input> > + <soap:body use="literal"/> > + </wsdl:input> > + <wsdl:output> > + <soap:body use="literal"/> > + </wsdl:output> > + </wsdl:operation> > + <wsdl:operation name="greetMe"> > + <soap:operation style="document"/> > + <wsdl:input> > + <soap:body use="literal"/> > + </wsdl:input> > + <wsdl:output> > + <soap:body use="literal"/> > + </wsdl:output> > + </wsdl:operation> > + <wsdl:operation name="testNillable"> > + <soap:operation style="document"/> > + <wsdl:input> > + <soap:body use="literal"/> > + </wsdl:input> > + <wsdl:output> > + <soap:body use="literal"/> > + </wsdl:output> > + </wsdl:operation> > + <wsdl:operation name="greetMeLater"> > + <soap:operation style="document"/> > + <wsdl:input> > + <soap:body use="literal"/> > + </wsdl:input> > + <wsdl:output> > + <soap:body use="literal"/> > + </wsdl:output> > + </wsdl:operation> > + <wsdl:operation name="greetMeSometime"> > + <soap:operation style="document"/> > + <wsdl:input> > + <soap:body use="literal"/> > + </wsdl:input> > + <wsdl:output> > + <soap:body use="literal"/> > + </wsdl:output> > + </wsdl:operation> > + <wsdl:operation name="greetMeOneWay"> > + <soap:operation style="document"/> > + <wsdl:input> > + <soap:body use="literal"/> > + </wsdl:input> > + </wsdl:operation> > + <wsdl:operation name="testDocLitFault"> > + <soap:operation style="document"/> > + <wsdl:input> > + <soap:body use="literal"/> > + </wsdl:input> > + <wsdl:output> > + <soap:body use="literal"/> > + </wsdl:output> > + <wsdl:fault name="NoSuchCodeLitFault"> > + <soap:fault name="NoSuchCodeLitFault" use="literal"/> > + </wsdl:fault> > + <wsdl:fault name="BadRecordLitFault"> > + <soap:fault name="BadRecordLitFault" use="literal"/> > + </wsdl:fault> > + </wsdl:operation> > + > + </wsdl:binding> > + <wsdl:binding name="Doc_Lit_Bare_SOAPBinding" type="tns:DocLitBare"> > + <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > + <wsdl:operation name="testDocLitBare"> > + <soap:operation style="document" > soapAction="http://apache.org/hello_world_soap_http/testDocLitBare"/> > + <wsdl:input name="testDocLitBareRequest"> > + <soap:body use="literal"/> > + </wsdl:input> > + <wsdl:output name="testDocLitBareResponse"> > + <soap:body use="literal"/> > + </wsdl:output> > + </wsdl:operation> > + </wsdl:binding> > + > + > + <wsdl:service name="SOAPService"> > + <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding"> > + <soap:address > location="http://localhost:9000/SoapContext/SoapPort"/> > + </wsdl:port> > + > + <wsdl:port name="SoapPort1" binding="tns:Greeter_SOAPBinding"> > + <soap:address > location="http://localhost:7000/SoapContext/SoapPort"/> > + </wsdl:port> > + </wsdl:service> > + > + <wsdl:service name="SOAPProviderService"> > + <wsdl:port name="SoapProviderPort" binding="tns:Greeter_SOAPBinding"> > + <soap:address > location="http://localhost:9003/SoapContext/SoapProviderPort"/> > + </wsdl:port> > + </wsdl:service> > + > + <wsdl:service name="SOAPDispatchService"> > + <wsdl:port name="SoapDispatchPort" binding="tns:Greeter_SOAPBinding"> > + <soap:address > location="http://localhost:9006/SOAPDispatchService/SoapDispatchPort"/> > + </wsdl:port> > + </wsdl:service> > + > + <wsdl:service name="SOAPService_DocLitBare"> > + <wsdl:port name="SoapPort2" binding="tns:Doc_Lit_Bare_SOAPBinding"> > + <soap:address > location="http://localhost:7600/SoapContext/SoapPort"/> > + </wsdl:port> > + </wsdl:service> > + <wsdl:service name="SOAPServiceAddressingDocLitBare"> > + <wsdl:port name="SoapPort" binding="tns:Doc_Lit_Bare_SOAPBinding"> > + <soap:address > location="http://localhost:7600/SoapContext/SoapPort"/> > + <wswa:UsingAddressing > xmlns:wswa="http://www.w3.org/2005/02/addressing/wsdl"/> > + </wsdl:port> > + </wsdl:service> > + <wsdl:service name="SOAPService_Test1"> > + <wsdl:port name="SoapPort_Test1" binding="tns:Greeter_SOAPBinding"> > + <soap:address location="http://localhost:9100"/> > + </wsdl:port> > + <wsdl:port name="SoapPort_Test2" binding="tns:Greeter_SOAPBinding"> > + <soap:address location="http://localhost:9101"/> > + </wsdl:port> > + </wsdl:service> > + <wsdl:service name="SOAPServiceAddressing"> > + <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding"> > + <soap:address > location="http://localhost:9008/SoapContext/SoapPort"/> > + <wswa:UsingAddressing > xmlns:wswa="http://www.w3.org/2005/02/addressing/wsdl"/> > + </wsdl:port> > + </wsdl:service> > + <wsdl:service name="SOAPServiceConcurrencyTest"> > + <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding"> > + <soap:address > location="http://localhost:9009/SoapContext/SoapPort"/> > + </wsdl:port> > + </wsdl:service> > + <wsdl:service name="SOAPServiceBogusAddressTest"> > + <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding"> > + <soap:address location="FOO"/> > + </wsdl:port> > + </wsdl:service> > + <wsdl:service name="SOAPServiceMultiPortTypeTest"> > + <wsdl:port name="GreeterPort" binding="tns:Greeter_SOAPBinding"> > + <soap:address > location="http://localhost:9020/MultiPort/GreeterPort"/> > + </wsdl:port> > + <wsdl:port name="DocLitBarePort" > binding="tns:Doc_Lit_Bare_SOAPBinding"> > + <soap:address > location="http://localhost:9021/MultiPort/DocBarePort"/> > + </wsdl:port> > + </wsdl:service> > +</wsdl:definitions> > + > > Added: > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/GreetMeDocLiteralRespExceedLength.xml > URL: > http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/GreetMeDocLiteralRespExceedLength.xml?rev=1513427&view=auto > ============================================================================== > --- > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/GreetMeDocLiteralRespExceedLength.xml > (added) > +++ > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/GreetMeDocLiteralRespExceedLength.xml > Tue Aug 13 10:37:58 2013 > @@ -0,0 +1,20 @@ > +<?xml version="1.0" encoding="utf-8" ?> > +<!-- > + Licensed to the Apache Software Foundation (ASF) under one > + or more contributor license agreements. See the NOTICE file > + distributed with this work for additional information > + regarding copyright ownership. The ASF licenses this file > + to you under the Apache License, Version 2.0 (the > + "License"); you may not use this file except in compliance > + with the License. You may obtain a copy of the License at > + > + http://www.apache.org/licenses/LICENSE-2.0 > + > + Unless required by applicable law or agreed to in writing, > + software distributed under the License is distributed on an > + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + KIND, either express or implied. See the License for the > + specific language governing permissions and limitations > + under the License. > +--> > +<SOAP-ENV:Envelope > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><ns4:greetMeResponse > > xmlns:ns4="http://apache.org/hello_world_soap_http/types"><ns4:responseType>this > is a greetMeResponse message which lenght exceed the maxLength > restriction</ns4:responseType></ns4:greetMeResponse></SOAP-ENV:Body></SOAP-ENV:Envelope> > > Modified: > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/XML_GreetMeDocLiteralResp.xml > URL: > http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/XML_GreetMeDocLiteralResp.xml?rev=1513427&r1=1513426&r2=1513427&view=diff > ============================================================================== > --- > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/XML_GreetMeDocLiteralResp.xml > (original) > +++ > cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/resources/XML_GreetMeDocLiteralResp.xml > Tue Aug 13 10:37:58 2013 > @@ -1,2 +1,2 @@ > <?xml version="1.0" encoding="utf-8" ?> > -<ns4:greetMeResponse > xmlns:ns4="http://apache.org/hello_world_soap_http/types"><ns4:responseType>TestXMLBindingProviderMessage</ns4:responseType></ns4:greetMeResponse> > \ No newline at end of file > +<ns4:greetMeResponse > xmlns:ns4="http://apache.org/hello_world_xml_http/wrapped/types"><ns4:responseType>TestXMLBindingProviderMessage</ns4:responseType></ns4:greetMeResponse> > > -- Daniel Kulp [email protected] - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com
