You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by tl...@apache.org on 2006/12/20 06:47:30 UTC
svn commit: r488924 - in /incubator/cxf/trunk:
rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/
systests/src/test/java/org/apache/cxf/systest/jaxws/ testutils/
testutils/src/main/resources/wsdl/
Author: tli
Date: Tue Dec 19 21:47:29 2006
New Revision: 488924
URL: http://svn.apache.org/viewvc?view=rev&rev=488924
Log:
CXF-293 fixed with systest, and refactor the XML Binding systests
Added:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java (with props)
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java (with props)
incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl (with props)
Removed:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLBareTest.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLWrapTest.java
Modified:
incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java
incubator/cxf/trunk/testutils/pom.xml
Modified: incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java?view=diff&rev=488924&r1=488923&r2=488924
==============================================================================
--- incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java Tue Dec 19 21:47:29 2006
@@ -26,9 +26,11 @@
import java.util.logging.Logger;
import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import org.apache.cxf.binding.xml.XMLFault;
+import org.apache.cxf.bindings.xformat.XMLBindingMessageFormat;
import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.interceptor.AbstractInDatabindingInterceptor;
@@ -39,6 +41,7 @@
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.service.model.BindingInfo;
+import org.apache.cxf.service.model.BindingMessageInfo;
import org.apache.cxf.service.model.BindingOperationInfo;
import org.apache.cxf.service.model.MessageInfo;
import org.apache.cxf.service.model.MessagePartInfo;
@@ -90,10 +93,12 @@
BindingOperationInfo bop = ex.get(BindingOperationInfo.class);
MessagePartInfo part = null;
if (bop == null) {
- List<OperationInfo> operations = new ArrayList<OperationInfo>();
- operations.addAll(service.getInterface().getOperations());
-
- part = findMessagePart(ex, operations, startQName, false , 0);
+ part = getPartByRootNode(message, startQName, service, xsr);
+ if (part == null) {
+ List<OperationInfo> operations = new ArrayList<OperationInfo>();
+ operations.addAll(service.getInterface().getOperations());
+ part = findMessagePart(ex, operations, startQName, false , 0);
+ }
} else {
MessageInfo msgInfo = getMessageInfo(message, bop, ex);
if (msgInfo.getMessageParts().size() > 0) {
@@ -101,7 +106,7 @@
}
}
- if (part != null && part.getMessageInfo().getMessageParts().size() == 1) {
+ if (part != null) {
OperationInfo o = part.getMessageInfo().getOperation();
// TODO: We already know the op, so we can optimize BareInInterceptor a bit yet
if (!o.isUnwrappedCapable()) {
@@ -134,4 +139,34 @@
throw new Fault(new org.apache.cxf.common.i18n.Message("REQ_NOT_UNDERSTOOD", BUNDLE, startQName));
}
+ private MessagePartInfo getPartByRootNode(Message message, QName startQName,
+ BindingInfo bi, XMLStreamReader xsr) {
+ for (BindingOperationInfo boi : bi.getOperations()) {
+ MessageInfo mi;
+ BindingMessageInfo bmi;
+ if (!isRequestor(message)) {
+ mi = boi.getOperationInfo().getInput();
+ bmi = boi.getInput();
+ } else {
+ mi = boi.getOperationInfo().getOutput();
+ bmi = boi.getOutput();
+ }
+ XMLBindingMessageFormat xmf = bmi.getExtensor(XMLBindingMessageFormat.class);
+ if (xmf != null) {
+ if (xmf.getRootNode().getLocalPart().equals(startQName.getLocalPart())) {
+ message.getExchange().put(BindingOperationInfo.class, boi);
+ try {
+ xsr.nextTag();
+ } catch (XMLStreamException xse) {
+ throw new Fault(new org.apache.cxf.common.i18n.Message("STAX_READ_EXC", BUNDLE));
+ }
+ if (mi.getMessageParts().size() > 0) {
+ return mi.getMessageParts().get(0);
+ }
+ break;
+ }
+ }
+ }
+ return null;
+ }
}
Added: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java?view=auto&rev=488924
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java (added)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java Tue Dec 19 21:47:29 2006
@@ -0,0 +1,251 @@
+/**
+ * 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.
+ */
+
+package org.apache.cxf.systest.jaxws;
+
+import java.io.InputStream;
+import java.lang.reflect.UndeclaredThrowableException;
+import java.net.HttpURLConnection;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Service;
+import javax.xml.xpath.XPathConstants;
+
+import org.w3c.dom.Document;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.cxf.helpers.XMLUtils;
+import org.apache.cxf.helpers.XPathUtils;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.systest.common.ClientServerSetupBase;
+import org.apache.cxf.systest.common.ClientServerTestBase;
+import org.apache.headers.HeaderTester;
+import org.apache.headers.XMLHeaderService;
+import org.apache.headers.types.InHeader;
+import org.apache.headers.types.InHeaderResponse;
+import org.apache.headers.types.SOAPHeaderData;
+import org.apache.hello_world_xml_http.bare.Greeter;
+import org.apache.hello_world_xml_http.bare.XMLService;
+import org.apache.hello_world_xml_http.bare.types.MyComplexStructType;
+import org.apache.hello_world_xml_http.wrapped.GreeterFaultImpl;
+import org.apache.hello_world_xml_http.wrapped.PingMeFault;
+
+public class ClientServerXMLTest extends ClientServerTestBase {
+
+ private final QName barePortName = new QName("http://apache.org/hello_world_xml_http/bare", "XMLPort");
+
+ private final QName wrapServiceName = new QName("http://apache.org/hello_world_xml_http/wrapped",
+ "XMLService");
+
+ private final QName wrapPortName = new QName("http://apache.org/hello_world_xml_http/wrapped", "XMLPort");
+
+ private final QName wrapFakePortName = new QName("http://apache.org/hello_world_xml_http/wrapped",
+ "FakePort");
+
+ public static Test suite() throws Exception {
+ TestSuite suite = new TestSuite(ClientServerXMLTest.class);
+ return new ClientServerSetupBase(suite) {
+ public void startServers() throws Exception {
+ assertTrue("server did not launch correctly", launchServer(ServerXMLBinding.class));
+ }
+ };
+ }
+
+ public void testBareBasicConnection() throws Exception {
+
+ XMLService service = new XMLService();
+ assertNotNull(service);
+
+ String response1 = "Hello ";
+ String response2 = "Bonjour";
+ try {
+ Greeter greeter = service.getPort(barePortName, Greeter.class);
+ String username = System.getProperty("user.name");
+ String reply = greeter.greetMe(username);
+
+ assertNotNull("no response received from service", reply);
+ assertEquals(response1 + username, reply);
+
+ reply = greeter.sayHi();
+ assertNotNull("no response received from service", reply);
+ assertEquals(response2, reply);
+
+ MyComplexStructType argument = new MyComplexStructType();
+ MyComplexStructType retVal = null;
+
+ String str1 = "this is element 1";
+ String str2 = "this is element 2";
+ int int1 = 42;
+ argument.setElem1(str1);
+ argument.setElem2(str2);
+ argument.setElem3(int1);
+ retVal = greeter.sendReceiveData(argument);
+
+ assertEquals(str1, retVal.getElem1());
+ assertEquals(str2, retVal.getElem2());
+ assertEquals(int1, retVal.getElem3());
+
+ } catch (UndeclaredThrowableException ex) {
+ throw (Exception) ex.getCause();
+ }
+ }
+
+ public void testBareGetGreetMe() throws Exception {
+ HttpURLConnection httpConnection =
+ getHttpConnection("http://localhost:9031/XMLService/XMLPort/greetMe/requestType/cxf");
+ httpConnection.connect();
+
+ assertEquals(200, httpConnection.getResponseCode());
+
+ assertEquals("text/xml", httpConnection.getContentType());
+ assertEquals("OK", httpConnection.getResponseMessage());
+
+ InputStream in = httpConnection.getInputStream();
+ assertNotNull(in);
+
+ Document doc = XMLUtils.parse(in);
+ assertNotNull(doc);
+
+ Map<String, String> ns = new HashMap<String, String>();
+ ns.put("ns2", "http://apache.org/hello_world_xml_http/bare/types");
+ XPathUtils xu = new XPathUtils(ns);
+ String response = (String) xu.getValue("//ns2:responseType/text()", doc, XPathConstants.STRING);
+ assertEquals("Hello cxf", response);
+ }
+
+ public void testWrapBasicConnection() throws Exception {
+
+ org.apache.hello_world_xml_http.wrapped.XMLService service =
+ new org.apache.hello_world_xml_http.wrapped.XMLService(
+ this.getClass().getResource("/wsdl/hello_world_xml_wrapped.wsdl"), wrapServiceName);
+ assertNotNull(service);
+
+ String response1 = new String("Hello ");
+ String response2 = new String("Bonjour");
+ try {
+ org.apache.hello_world_xml_http.wrapped.Greeter greeter = service.getPort(wrapPortName,
+ org.apache.hello_world_xml_http.wrapped.Greeter.class);
+ String username = System.getProperty("user.name");
+ String reply = greeter.greetMe(username);
+
+ assertNotNull("no response received from service", reply);
+ assertEquals(response1 + username, reply);
+
+ reply = greeter.sayHi();
+ assertNotNull("no response received from service", reply);
+ assertEquals(response2, reply);
+
+ greeter.greetMeOneWay(System.getProperty("user.name"));
+
+ } catch (UndeclaredThrowableException ex) {
+ throw (Exception) ex.getCause();
+ }
+ }
+
+ public void testAddPort() throws Exception {
+
+ Service service = Service.create(wrapServiceName);
+ service.addPort(wrapFakePortName, "http://cxf.apache.org/bindings/xformat",
+ "http://localhost:9032/XMLService/XMLPort");
+ assertNotNull(service);
+
+ String response1 = new String("Hello ");
+ String response2 = new String("Bonjour");
+
+ org.apache.hello_world_xml_http.wrapped.Greeter greeter = service.getPort(wrapPortName,
+ org.apache.hello_world_xml_http.wrapped.Greeter.class);
+
+ try {
+ String username = System.getProperty("user.name");
+ String reply = greeter.greetMe(username);
+
+ assertNotNull("no response received from service", reply);
+ assertEquals(response1 + username, reply);
+
+ reply = greeter.sayHi();
+ assertNotNull("no response received from service", reply);
+ assertEquals(response2, reply);
+
+ greeter.greetMeOneWay(System.getProperty("user.name"));
+
+ } catch (UndeclaredThrowableException ex) {
+ throw (Exception) ex.getCause();
+ }
+ BindingProvider bp = (BindingProvider) greeter;
+ Map<String, Object> responseContext = bp.getResponseContext();
+ Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+ assertEquals(200, responseCode.intValue());
+ }
+
+ public void testXMLFault() throws Exception {
+ org.apache.hello_world_xml_http.wrapped.XMLService service =
+ new org.apache.hello_world_xml_http.wrapped.XMLService(
+ this.getClass().getResource("/wsdl/hello_world_xml_wrapped.wsdl"), wrapServiceName);
+ assertNotNull(service);
+ org.apache.hello_world_xml_http.wrapped.Greeter greeter = service.getPort(wrapPortName,
+ org.apache.hello_world_xml_http.wrapped.Greeter.class);
+ try {
+ greeter.pingMe();
+ fail("did not catch expected PingMeFault exception");
+ } catch (PingMeFault ex) {
+ assertEquals("minor value", 1, ex.getFaultInfo().getMinor());
+ assertEquals("major value", 2, ex.getFaultInfo().getMajor());
+
+ BindingProvider bp = (BindingProvider) greeter;
+ Map<String, Object> responseContext = bp.getResponseContext();
+ String contentType = (String) responseContext.get(Message.CONTENT_TYPE);
+ assertEquals("text/xml", contentType);
+ Integer responseCode = (Integer) responseContext.get(Message.RESPONSE_CODE);
+ assertEquals(500, responseCode.intValue());
+ }
+
+ org.apache.hello_world_xml_http.wrapped.Greeter greeterFault = service.getXMLFaultPort();
+ try {
+ greeterFault.pingMe();
+ fail("did not catch expected runtime exception");
+ } catch (Exception ex) {
+ assertTrue("check expected message of exception", ex.getMessage().indexOf(
+ GreeterFaultImpl.RUNTIME_EXCEPTION_MESSAGE) >= 0);
+ }
+ }
+
+ public void testXMLBindingOfSoapHeaderWSDL() throws Exception {
+ XMLHeaderService service = new XMLHeaderService();
+ HeaderTester port = service.getXMLPort9000();
+ try {
+ InHeader me = new InHeader();
+ me.setRequestType("InHeaderRequest");
+ SOAPHeaderData headerInfo = new SOAPHeaderData();
+ headerInfo.setMessage("message");
+ headerInfo.setOriginator("originator");
+ InHeaderResponse resp = port.inHeader(me, headerInfo);
+ assertNotNull(resp);
+ assertEquals("check returned response type", "requestType=InHeaderRequest"
+ + "\nheaderData.message=message" + "\nheaderData.getOriginator=originator",
+ resp.getResponseType());
+ } catch (UndeclaredThrowableException ex) {
+ throw (Exception) ex.getCause();
+ }
+ }
+}
Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerXMLTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java?view=auto&rev=488924
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java (added)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java Tue Dec 19 21:47:29 2006
@@ -0,0 +1,61 @@
+/**
+ * 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.
+ */
+
+package org.apache.cxf.systest.jaxws;
+
+import javax.xml.ws.Endpoint;
+
+import org.apache.cxf.systest.common.TestServerBase;
+import org.apache.headers.HeaderTesterImpl;
+import org.apache.hello_world_xml_http.bare.GreeterImpl;
+import org.apache.hello_world_xml_http.wrapped.GreeterFaultImpl;
+
+
+public class ServerXMLBinding extends TestServerBase {
+
+ protected void run() {
+ Object implementor = new GreeterImpl();
+ String address = "http://localhost:9031/XMLService/XMLPort";
+ Endpoint.publish(address, implementor);
+
+ Object implementor1 = new org.apache.hello_world_xml_http.wrapped.GreeterImpl();
+ address = "http://localhost:9032/XMLService/XMLPort";
+ Endpoint.publish(address, implementor1);
+
+ Object faultImplementor = new GreeterFaultImpl();
+ String faultAddress = "http://localhost:9033/XMLService/XMLFaultPort";
+ Endpoint.publish(faultAddress, faultImplementor);
+
+ Object implementor2 = new HeaderTesterImpl();
+ address = "http://localhost:9034/XMLContext/XMLPort";
+ Endpoint.publish(address, implementor2);
+ }
+
+ public static void main(String[] args) {
+ try {
+ ServerXMLBinding s = new ServerXMLBinding();
+ s.start();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ System.exit(-1);
+ } finally {
+ System.out.println("done!");
+ }
+ }
+}
Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ServerXMLBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/cxf/trunk/testutils/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/pom.xml?view=diff&rev=488924&r1=488923&r2=488924
==============================================================================
--- incubator/cxf/trunk/testutils/pom.xml (original)
+++ incubator/cxf/trunk/testutils/pom.xml Tue Dec 19 21:47:29 2006
@@ -201,6 +201,9 @@
<wsdl>${basedir}/src/main/resources/wsdl/soapheader.wsdl</wsdl>
</wsdlOption>
<wsdlOption>
+ <wsdl>${basedir}/src/main/resources/wsdl/soapheader2.wsdl</wsdl>
+ </wsdlOption>
+ <wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/locator.wsdl</wsdl>
<extraargs>
<extraarg>-p</extraarg>
Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl?view=auto&rev=488924
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl (added)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl Tue Dec 19 21:47:29 2006
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="soap_header" targetNamespace="http://apache.org/headers"
+ xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:jms="http://cxf.apache.org/transports/jms"
+ xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xformat="http://cxf.apache.org/bindings/xformat" xmlns:tns="http://apache.org/headers"
+ xmlns:x1="http://apache.org/headers/types" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <types>
+ <schema targetNamespace="http://apache.org/headers/types" xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://apache.org/headers/types" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ elementFormDefault="qualified">
+
+ <complexType name="SOAPHeaderData">
+ <sequence>
+ <element name="originator" type="xsd:string" />
+ <element name="message" type="xsd:string" />
+ </sequence>
+ </complexType>
+ <element name="SOAPHeaderInfo" type="tns:SOAPHeaderData" />
+
+ <element name="inHeader">
+ <complexType>
+ <sequence>
+ <element name="requestType" type="xsd:string" />
+ </sequence>
+ </complexType>
+ </element>
+ <element name="inHeaderResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="xsd:string" />
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="outHeader">
+ <complexType>
+ <sequence>
+ <element name="requestType" type="xsd:string" />
+ </sequence>
+ </complexType>
+ </element>
+ <element name="outHeaderResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="xsd:string" />
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="inoutHeader">
+ <complexType>
+ <sequence>
+ <element name="requestType" type="xsd:string" />
+ </sequence>
+ </complexType>
+ </element>
+ <element name="inoutHeaderResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="xsd:string" />
+ </sequence>
+ </complexType>
+ </element>
+
+ </schema>
+ </types>
+
+ <message name="inHeaderRequest">
+ <part element="x1:inHeader" name="me" />
+ <part element="x1:SOAPHeaderInfo" name="header_info" />
+ </message>
+ <message name="inHeaderResponse">
+ <part element="x1:inHeaderResponse" name="the_response" />
+ </message>
+ <message name="outHeaderRequest">
+ <part element="x1:outHeader" name="me" />
+ </message>
+ <message name="outHeaderResponse">
+ <part element="x1:outHeaderResponse" name="the_response" />
+ <part element="x1:SOAPHeaderInfo" name="header_info" />
+ </message>
+ <message name="inoutHeaderRequest">
+ <part element="x1:inoutHeader" name="me" />
+ <part element="x1:SOAPHeaderInfo" name="header_info" />
+ </message>
+ <message name="inoutHeaderResponse">
+ <part element="x1:inoutHeaderResponse" name="the_response" />
+ <part element="x1:SOAPHeaderInfo" name="header_info" />
+ </message>
+
+ <portType name="headerTester">
+ <operation name="inHeader">
+ <input message="tns:inHeaderRequest" name="inHeaderRequest" />
+ <output message="tns:inHeaderResponse" name="inHeaderResponse" />
+ </operation>
+ <operation name="outHeader">
+ <input message="tns:outHeaderRequest" name="outHeaderRequest" />
+ <output message="tns:outHeaderResponse" name="outHeaderResponse" />
+ </operation>
+ <operation name="inoutHeader">
+ <input message="tns:inoutHeaderRequest" name="inoutHeaderRequest" />
+ <output message="tns:inoutHeaderResponse" name="inoutHeaderResponse" />
+ </operation>
+ </portType>
+
+ <binding name="headerTesterSOAPBinding" type="tns:headerTester">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="inHeader">
+ <soap:operation soapAction="" style="document" />
+ <input name="inHeaderRequest">
+ <soap:body parts="me" use="literal" />
+ <soap:header message="tns:inHeaderRequest" part="header_info" use="literal" />
+ </input>
+ <output name="inHeaderResponse">
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ <operation name="outHeader">
+ <soap:operation soapAction="" style="document" />
+ <input name="outHeaderRequest">
+ <soap:body use="literal" />
+ </input>
+ <output name="outHeaderResponse">
+ <soap:body parts="the_response" use="literal" />
+ <soap:header message="tns:outHeaderResponse" part="header_info" use="literal" />
+ </output>
+ </operation>
+ <operation name="inoutHeader">
+ <soap:operation soapAction="" style="document" />
+ <input name="inoutHeaderRequest">
+ <soap:body parts="me" use="literal" />
+ <soap:header message="tns:inoutHeaderRequest" part="header_info" use="literal" />
+ </input>
+ <output name="inoutHeaderResponse">
+ <soap:body parts="the_response" use="literal" />
+ <soap:header message="tns:inoutHeaderResponse" part="header_info" use="literal" />
+ </output>
+ </operation>
+ </binding>
+
+ <wsdl:binding name="headerTesterXMLBinding" type="tns:headerTester">
+ <xformat:binding />
+ <wsdl:operation name="inHeader">
+ <wsdl:input>
+ <xformat:body rootNode="tns:inHeaderReqNode" />
+ </wsdl:input>
+ <wsdl:output />
+ </wsdl:operation>
+
+ <wsdl:operation name="outHeader">
+ <wsdl:input />
+ <wsdl:output>
+ <xformat:body rootNode="tns:outHeaderRespNode" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="inoutHeader">
+ <wsdl:input>
+ <xformat:body rootNode="tns:inoutHeaderNode" />
+ </wsdl:input>
+ <wsdl:output>
+ <xformat:body rootNode="tns:inoutHeaderNode" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <service name="XMLHeaderService">
+ <port binding="tns:headerTesterXMLBinding" name="XMLPort9000">
+ <http:address location="http://localhost:9034/XMLContext/XMLPort" />
+ </port>
+ </service>
+
+</definitions>
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader2.wsdl
------------------------------------------------------------------------------
svn:mime-type = text/xml