You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2007/05/27 22:34:56 UTC
svn commit: r542032 - in /incubator/cxf/trunk:
rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/
rt/core/src/main/java/org/apache/cxf/wsdl11/
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/
testutils/src/main/resources/wsdl...
Author: dandiep
Date: Sun May 27 13:34:55 2007
New Revision: 542032
URL: http://svn.apache.org/viewvc?view=rev&rev=542032
Log:
Check for SOAPHeaders in the runtime inside MIMEParts. Use reflection to call JAXBContextImpl.hasSwaRef.
Modified:
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLDefinitionBuilder.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
incubator/cxf/trunk/testutils/src/main/resources/wsdl/swa-mime.wsdl
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/SOAPBindingUtil.java
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java?view=diff&rev=542032&r1=542031&r2=542032
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java Sun May 27 13:34:55 2007
@@ -258,20 +258,19 @@
SoapBindingInfo bi = new SoapBindingInfo(service, ns);
// Copy all the extensors
initializeBindingInfo(service, binding, bi);
-
+
org.apache.cxf.tools.common.extensions.soap.SoapBinding wSoapBinding
= SOAPBindingUtil.getSoapBinding(bi.getExtensors(ExtensibilityElement.class));
bi.setTransportURI(wSoapBinding.getTransportURI());
bi.setStyle(wSoapBinding.getStyle());
-
+
for (BindingOperationInfo boi : bi.getOperations()) {
initializeBindingOperation(bi, boi);
}
-
+
return bi;
}
-
private void initializeBindingOperation(SoapBindingInfo bi, BindingOperationInfo boi) {
SoapOperationInfo soi = new SoapOperationInfo();
@@ -336,6 +335,7 @@
bodyInfo.setUse(soapBody.getUse());
parts = soapBody.getParts();
}
+
// Initialize the body parts.
List<MessagePartInfo> attParts = null;
if (parts != null) {
@@ -348,32 +348,38 @@
if (mpart.getExtensibilityElements().size() < 1) {
throw new RuntimeException("MIMEPart should at least contain one element!");
}
- Object content = mpart.getExtensibilityElements().get(0);
- if (content instanceof MIMEContent) {
- MIMEContent mc = (MIMEContent)content;
- partName = mc.getPart();
-
- if (attParts == null) {
- attParts = new LinkedList<MessagePartInfo>();
- }
-
- MessagePartInfo mpi = msg.getMessagePart(new QName(msg.getName().getNamespaceURI(),
- partName));
- mpi.setProperty(Message.CONTENT_TYPE, mc.getType());
- attParts.add(mpi);
- // Attachments shouldn't be part of the body message
- bmsg.getMessageParts().remove(mpi);
- } else if (SOAPBindingUtil.isSOAPBody(content)) {
- SoapBody sb = SOAPBindingUtil.getSoapBody(content);
- if (sb.getParts().size() == 1) {
- partName = (String) sb.getParts().get(0);
- }
+ for (Object content : mpart.getExtensibilityElements()) {
+ if (content instanceof MIMEContent) {
+ MIMEContent mc = (MIMEContent)content;
+ partName = mc.getPart();
+
+ if (attParts == null) {
+ attParts = new LinkedList<MessagePartInfo>();
+ }
+
+ MessagePartInfo mpi =
+ msg.getMessagePart(new QName(msg.getName().getNamespaceURI(),
+ partName));
+ mpi.setProperty(Message.CONTENT_TYPE, mc.getType());
+ attParts.add(mpi);
+ // Attachments shouldn't be part of the body message
+ bmsg.getMessageParts().remove(mpi);
+ } else if (SOAPBindingUtil.isSOAPBody(content)) {
+ SoapBody sb = SOAPBindingUtil.getSoapBody(content);
+ if (sb.getParts().size() == 1) {
+ partName = (String) sb.getParts().get(0);
+ }
+
+ // We can have a list of empty part names here.
+ if (partName != null) {
+ addSoapBodyPart(msg, bodyParts, partName);
+ }
+ } else if (SOAPBindingUtil.isSOAPHeader(content)) {
+ SoapHeader sb = SOAPBindingUtil.getSoapHeader(content);
- // We can have a list of empty part names here.
- if (partName != null) {
- addSoapBodyPart(msg, bodyParts, partName);
- }
- }
+ bmsg.addExtensor(sb);
+ }
+ }
} else {
addSoapBodyPart(msg, bodyParts, (String)part);
}
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLDefinitionBuilder.java?view=diff&rev=542032&r1=542031&r2=542032
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLDefinitionBuilder.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLDefinitionBuilder.java Sun May 27 13:34:55 2007
@@ -29,12 +29,18 @@
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
+
import javax.wsdl.Definition;
import javax.wsdl.Import;
import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.extensions.mime.MIMEPart;
import javax.wsdl.factory.WSDLFactory;
import javax.wsdl.xml.WSDLReader;
import javax.xml.bind.JAXBException;
+import javax.xml.namespace.QName;
+
+import com.ibm.wsdl.extensions.soap.SOAPHeaderImpl;
+import com.ibm.wsdl.extensions.soap.SOAPHeaderSerializer;
import org.apache.cxf.BusException;
import org.apache.cxf.common.i18n.Message;
@@ -59,6 +65,12 @@
try {
wsdlFactory = WSDLFactory.newInstance();
registry = wsdlFactory.newPopulatedExtensionRegistry();
+ QName header = new QName("http://schemas.xmlsoap.org/wsdl/soap/", "header");
+ registry.registerDeserializer(MIMEPart.class,
+ header,
+ new SOAPHeaderSerializer());
+ registry.mapExtensionTypes(MIMEPart.class, header, SOAPHeaderImpl.class);
+
registerInitialExtensions();
wsdlReader = wsdlFactory.newWSDLReader();
// TODO enable the verbose if in verbose mode.
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java?view=diff&rev=542032&r1=542031&r2=542032
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java Sun May 27 13:34:55 2007
@@ -35,12 +35,17 @@
import javax.wsdl.Types;
import javax.wsdl.WSDLException;
import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.extensions.mime.MIMEPart;
+import javax.wsdl.extensions.soap.SOAPHeader;
import javax.wsdl.factory.WSDLFactory;
import javax.wsdl.xml.WSDLReader;
import javax.xml.bind.JAXBException;
+import javax.xml.namespace.QName;
import org.w3c.dom.Element;
+import com.ibm.wsdl.extensions.soap.SOAPHeaderSerializer;
+
import org.apache.cxf.Bus;
import org.apache.cxf.BusException;
import org.apache.cxf.catalog.CatalogWSDLLocator;
@@ -75,6 +80,12 @@
registry.registerSerializer(Types.class,
WSDLConstants.SCHEMA_QNAME,
new SchemaSerializer());
+ QName header = new QName("http://schemas.xmlsoap.org/wsdl/soap/",
+ "header");
+ registry.registerDeserializer(MIMEPart.class,
+ header,
+ new SOAPHeaderSerializer());
+ registry.mapExtensionTypes(MIMEPart.class, header, SOAPHeader.class);
} catch (WSDLException e) {
throw new BusException(e);
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java?view=diff&rev=542032&r1=542031&r2=542032
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java Sun May 27 13:34:55 2007
@@ -25,11 +25,13 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.StringWriter;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
+import java.util.logging.Level;
import java.util.logging.Logger;
import javax.activation.DataHandler;
@@ -99,14 +101,9 @@
if (sbi == null || sbi.getAttachments() == null || sbi.getAttachments().size() == 0) {
Service s = message.getExchange().get(Service.class);
DataBinding db = s.getDataBinding();
- if (db instanceof JAXBDataBinding) {
- JAXBContext context = ((JAXBDataBinding)db).getContext();
- if (context instanceof JAXBContextImpl) {
- JAXBContextImpl riCtx = (JAXBContextImpl) context;
- if (riCtx.hasSwaRef()) {
- setupAttachmentOutput(message);
- }
- }
+ if (db instanceof JAXBDataBinding
+ && hasSwaRef((JAXBDataBinding) db)) {
+ setupAttachmentOutput(message);
}
return;
}
@@ -132,6 +129,7 @@
DataHandler dh = null;
+ // This code could probably be refactored out somewhere...
if (o instanceof Source) {
dh = new DataHandler(createDataSource((Source)o, ct));
@@ -174,6 +172,26 @@
atts.add(att);
}
}
+ private boolean hasSwaRef(JAXBDataBinding db) {
+ JAXBContext context = db.getContext();
+ if (context instanceof JAXBContextImpl) {
+ JAXBContextImpl riCtx = (JAXBContextImpl) context;
+
+ try {
+ // We're using reflection here because this won't work on
+ // JAXB < 2.0.5 and Java 6 ships with 2.0.2. This means
+ // SwA won't work correctly unless you're using at least
+ // JAXB 2.0.5.
+ Method m = riCtx.getClass().getMethod("hasSwaRef", new Class[0]);
+
+ return (Boolean) m.invoke(riCtx, new Object[0]);
+ } catch (Exception e) {
+ LOG.log(Level.FINER, "Could not check hasSwaRef", e);
+ }
+ }
+
+ return false;
+ }
private DataSource createDataSource(Source o, String ct) {
DataSource ds = null;
@@ -214,25 +232,26 @@
private BufferedImage convertToBufferedImage(Image image) throws IOException {
if (image instanceof BufferedImage) {
return (BufferedImage)image;
- } else {
- MediaTracker tracker = new MediaTracker(new Component() { });
- tracker.addImage(image, 0);
- try {
- tracker.waitForAll();
- } catch (InterruptedException e) {
- IOException ioe = new IOException(e.getMessage());
- ioe.initCause(e);
- throw ioe;
- }
- BufferedImage bufImage = new BufferedImage(
- image.getWidth(null),
- image.getHeight(null),
- BufferedImage.TYPE_INT_ARGB);
-
- Graphics g = bufImage.createGraphics();
- g.drawImage(image, 0, 0, null);
- return bufImage;
}
+
+ // Wait until the image is completely loaded
+ MediaTracker tracker = new MediaTracker(new Component() { });
+ tracker.addImage(image, 0);
+ try {
+ tracker.waitForAll();
+ } catch (InterruptedException e) {
+ throw new Fault(e);
+ }
+
+ // Create a BufferedImage so we can write it out later
+ BufferedImage bufImage = new BufferedImage(
+ image.getWidth(null),
+ image.getHeight(null),
+ BufferedImage.TYPE_INT_ARGB);
+
+ Graphics g = bufImage.createGraphics();
+ g.drawImage(image, 0, 0, null);
+ return bufImage;
}
private Collection<Attachment> setupAttachmentOutput(SoapMessage message) {
Modified: incubator/cxf/trunk/testutils/src/main/resources/wsdl/swa-mime.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/swa-mime.wsdl?view=diff&rev=542032&r1=542031&r2=542032
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/swa-mime.wsdl (original)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/swa-mime.wsdl Sun May 27 13:34:55 2007
@@ -19,40 +19,47 @@
specific language governing permissions and limitations
under the License.
-->
-<wsdl:definitions name="SwAService" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
- xmlns:tns="http://cxf.apache.org/swa" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
- xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd" xmlns:types="http://cxf.apache.org/swa/types"
- xmlns:xmime="http://www.w3.org/2005/05/xmlmime" targetNamespace="http://cxf.apache.org/swa"
+<wsdl:definitions name="SwAService"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://cxf.apache.org/swa"
+ xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
+ xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
+ xmlns:types="http://cxf.apache.org/swa/types"
+ xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
+ targetNamespace="http://cxf.apache.org/swa"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
<wsdl:types>
<xsd:schema xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
targetNamespace="http://cxf.apache.org/swa/types">
- <xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd"/>
+ <xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd" />
<xsd:element name="DataStruct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DataRef" type="wsi:swaRef"
- xmime:expectedContentTypes="application/octet-stream" />
+ xmime:expectedContentTypes="application/octet-stream" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
-
- <xsd:element name="text" type="xsd:string"/>
- <xsd:element name="VoidRequest" type="types:VoidRequest"/>
+
+ <xsd:element name="text" type="xsd:string" />
+ <xsd:element name="headerText" type="xsd:string" />
+ <xsd:element name="VoidRequest" type="types:VoidRequest" />
<xsd:complexType name="VoidRequest">
- <xsd:sequence/>
+ <xsd:sequence />
</xsd:complexType>
-
- <xsd:element name="OutputResponseAll" type="types:OutputResponseAll"/>
+
+ <xsd:element name="OutputResponseAll"
+ type="types:OutputResponseAll" />
<xsd:complexType name="OutputResponseAll">
- <xsd:sequence>
- <xsd:element name="result" type="xsd:string"/>
- <xsd:element name="reason" type="xsd:string"/>
- </xsd:sequence>
+ <xsd:sequence>
+ <xsd:element name="result" type="xsd:string" />
+ <xsd:element name="reason" type="xsd:string" />
+ </xsd:sequence>
</xsd:complexType>
-
+
</xsd:schema>
<xsd:schema targetNamespace="http://ws-i.org/profiles/basic/1.1/xsd"
@@ -73,32 +80,46 @@
<wsdl:message name="echoDataRequest">
<wsdl:part name="text" element="types:text" />
- <wsdl:part name="data" type="xsd:base64Binary"/>
+ <wsdl:part name="data" type="xsd:base64Binary" />
</wsdl:message>
<wsdl:message name="echoDataResponse">
<wsdl:part name="text" element="types:text" />
<wsdl:part name="data" type="xsd:base64Binary" />
</wsdl:message>
-
+
+ <wsdl:message name="echoDataWithHeaderRequest">
+ <wsdl:part name="text" element="types:headerText" />
+ <wsdl:part name="data" type="xsd:base64Binary" />
+ </wsdl:message>
+
+ <wsdl:message name="echoDataWithHeaderResponse">
+ <wsdl:part name="text" element="types:headerText" />
+ <wsdl:part name="data" type="xsd:base64Binary" />
+ </wsdl:message>
+
+ <wsdl:message name="headerMessage">
+ <wsdl:part name="text" element="types:headerText" />
+ </wsdl:message>
+
<wsdl:message name="messageInputAllAttachmentTypes">
- <wsdl:part name="request" element="types:VoidRequest"/>
- <wsdl:part name="attach1" type="xsd:string"/>
- <wsdl:part name="attach2" type="xsd:string"/>
- <wsdl:part name="attach3" type="xsd:string"/>
- <wsdl:part name="attach4" type="xsd:base64Binary"/>
- <wsdl:part name="attach5" type="xsd:base64Binary"/>
- </wsdl:message>
-
+ <wsdl:part name="request" element="types:VoidRequest" />
+ <wsdl:part name="attach1" type="xsd:string" />
+ <wsdl:part name="attach2" type="xsd:string" />
+ <wsdl:part name="attach3" type="xsd:string" />
+ <wsdl:part name="attach4" type="xsd:base64Binary" />
+ <wsdl:part name="attach5" type="xsd:base64Binary" />
+ </wsdl:message>
+
<wsdl:message name="messageOutputAllAttachmentTypes">
- <wsdl:part name="response" element="types:OutputResponseAll"/>
- <wsdl:part name="attach1" type="xsd:string"/>
- <wsdl:part name="attach2" type="xsd:string"/>
- <wsdl:part name="attach3" type="xsd:string"/>
- <wsdl:part name="attach4" type="xsd:base64Binary"/>
- <wsdl:part name="attach5" type="xsd:base64Binary"/>
+ <wsdl:part name="response" element="types:OutputResponseAll" />
+ <wsdl:part name="attach1" type="xsd:string" />
+ <wsdl:part name="attach2" type="xsd:string" />
+ <wsdl:part name="attach3" type="xsd:string" />
+ <wsdl:part name="attach4" type="xsd:base64Binary" />
+ <wsdl:part name="attach5" type="xsd:base64Binary" />
</wsdl:message>
-
+
<wsdl:portType name="SwAServiceInterface">
<wsdl:operation name="echoDataRef">
@@ -111,15 +132,22 @@
<wsdl:output message="tns:echoDataResponse" />
</wsdl:operation>
+ <wsdl:operation name="echoDataWithHeader">
+ <wsdl:input message="tns:echoDataWithHeaderRequest" />
+ <wsdl:output message="tns:echoDataWithHeaderResponse" />
+ </wsdl:operation>
+
<wsdl:operation name="echoAllAttachmentTypes">
- <wsdl:input message="tns:messageInputAllAttachmentTypes"/>
- <wsdl:output message="tns:messageOutputAllAttachmentTypes"/>
+ <wsdl:input message="tns:messageInputAllAttachmentTypes" />
+ <wsdl:output message="tns:messageOutputAllAttachmentTypes" />
</wsdl:operation>
-
+
</wsdl:portType>
- <wsdl:binding name="SwAServiceBinding" type="tns:SwAServiceInterface">
- <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:binding name="SwAServiceBinding"
+ type="tns:SwAServiceInterface">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="echoDataRef">
<soap:operation soapAction="" style="literal" />
@@ -131,12 +159,14 @@
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echoData">
+ <wsdl:operation name="echoDataWithHeader">
<soap:operation soapAction="" style="literal" />
<wsdl:input>
<mime:multipartRelated>
<mime:part>
<soap:body parts="text" use="literal" />
+ <soap:header use="literal" part="text"
+ message="tns:headerMessage" />
</mime:part>
<mime:part>
<mime:content part="data" type="application/octet-stream" />
@@ -147,65 +177,68 @@
<mime:multipartRelated>
<mime:part>
<soap:body parts="text" use="literal" />
+ <soap:header use="literal" part="text"
+ message="tns:headerMessage" />
</mime:part>
<mime:part>
<mime:content part="data" type="application/octet-stream" />
</mime:part>
</mime:multipartRelated>
</wsdl:output>
- </wsdl:operation>
-
+ </wsdl:operation>
+
<wsdl:operation name="echoAllAttachmentTypes">
- <soap:operation/>
- <wsdl:input>
- <mime:multipartRelated>
- <mime:part>
- <soap:body parts="request" use="literal"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach1" type="text/plain"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach2" type="text/html"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach3" type="text/xml"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach4" type="image/jpeg"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach5" type="image/jpeg"/>
- </mime:part>
- </mime:multipartRelated>
- </wsdl:input>
- <wsdl:output>
- <mime:multipartRelated>
- <mime:part>
- <soap:body parts="response" use="literal"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach1" type="text/plain"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach2" type="text/html"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach3" type="text/xml"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach4" type="image/jpeg"/>
- </mime:part>
- <mime:part>
- <mime:content part="attach5" type="image/jpeg"/>
- </mime:part>
- </mime:multipartRelated>
- </wsdl:output>
+ <soap:operation />
+ <wsdl:input>
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body parts="request" use="literal" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach1" type="text/plain" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach2" type="text/html" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach3" type="text/xml" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach4" type="image/jpeg" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach5" type="image/jpeg" />
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:input>
+ <wsdl:output>
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body parts="response" use="literal" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach1" type="text/plain" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach2" type="text/html" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach3" type="text/xml" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach4" type="image/jpeg" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="attach5" type="image/jpeg" />
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SwAService">
- <wsdl:port name="SwAServiceHttpPort" binding="tns:SwAServiceBinding">
+ <wsdl:port name="SwAServiceHttpPort"
+ binding="tns:SwAServiceBinding">
<soap:address location="http://localhost:9036/swa" />
</wsdl:port>
</wsdl:service>
Modified: incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/SOAPBindingUtil.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/SOAPBindingUtil.java?view=diff&rev=542032&r1=542031&r2=542032
==============================================================================
--- incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/SOAPBindingUtil.java (original)
+++ incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/SOAPBindingUtil.java Sun May 27 13:34:55 2007
@@ -21,7 +21,11 @@
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import javax.wsdl.Binding;
import javax.wsdl.BindingFault;