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>