This doesn't seem to be causing Axis a problem, but other SOAP stacks will probably barf. There is no such service style as "wrapped" in WSDL. You should change it to "document". (From a WSDL perspective "wrapped" is a programming convention identified by the fact that your soap body element has the same name as the operation. The style="wrapped" attribute is only used in the Axis WSDD.)
This: <soap:binding style="wrapped" transport="http://schemas.xmlsoap.org/soap/http"/> Should be this: <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> Regards, Anne On 4/26/05, Schwarz, Karl <[EMAIL PROTECTED]> wrote: > Hi, > > I've got a service defined that is transferring an java.awt.Image using SOAP > with attachments. > > Here is the WSDL: > > <wsdl:definitions name="ImageryService" > targetNamespace="http://examples.com/ImageService" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:types="http://examples.com/ImageService/types" > xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" > xmlns:tns="http://examples.com/ImageService"> > <wsdl:types> > > <!-- types namespace for this service --> > <xsd:schema targetNamespace="http://examples.com/ImageService/types" > xmlns:types="http://examples.com/ImageService/types"> > > <!-- Wrapper elements to provide unique signatures for the operations --> > <xsd:element name="addImage"> > <xsd:complexType> > <xsd:sequence> > <xsd:element ref="types:ImageInfo"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > <xsd:element name="replaceImage"> > <xsd:complexType> > <xsd:sequence> > <xsd:element ref="types:ImageInfo"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > <xsd:element name="getImage"> > <xsd:complexType> > <xsd:sequence> > <xsd:element ref="types:ImageInfo"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > <xsd:element name="ImageInfo"> > <xsd:complexType> > <xsd:sequence> > <xsd:element name="name" type="xsd:string"/> > <xsd:element name="id" type="xsd:int"/> > <xsd:element name="lat" type="xsd:double"/> > <xsd:element name="lon" type="xsd:double"/> > <xsd:element name="time" type="xsd:dateTime"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > <!-- Status return for the operations. --> > <xsd:element name="status" type="xsd:string" /> > </xsd:schema> > </wsdl:types> > > <!-- Input for the operations. --> > <wsdl:message name="addImageRequest"> > <!-- first part is the SOAP body --> > <wsdl:part name="body" element="types:addImage"/> > <!-- second part is the attachment --> > <wsdl:part name="image" type="xsd:base64Binary"/> > </wsdl:message> > <wsdl:message name="addImageResponse"> > <wsdl:part name="body" element="types:status"/> > </wsdl:message> > > <wsdl:message name="getImageRequest"> > <!-- first part is the SOAP body --> > <wsdl:part name="body" element="types:getImage"/> > </wsdl:message> > <wsdl:message name="getImageResponse"> > <wsdl:part name="status" element="types:status"/> > <!-- second part is the attachment --> > <wsdl:part name="image" type="xsd:base64Binary"/> > </wsdl:message> > > <wsdl:message name="replaceImageRequest"> > <wsdl:part name="body" element="types:replaceImage"/> > <wsdl:part name="newImage" type="xsd:base64Binary"/> > </wsdl:message> > <wsdl:message name="replaceImageResponse"> > <wsdl:part name="status" element="types:status"/> > </wsdl:message> > <wsdl:portType name="ImageryServicePortType"> > <wsdl:operation name="addImage"> > <wsdl:input message="tns:addImageRequest"/> > <wsdl:output message="tns:addImageResponse"/> > </wsdl:operation> > <wsdl:operation name="getImage"> > <wsdl:input message="tns:getImageRequest"/> > <wsdl:output message="tns:getImageResponse"/> > </wsdl:operation> > <wsdl:operation name="replaceImage"> > <wsdl:input message="tns:replaceImageRequest"/> > <wsdl:output message="tns:replaceImageResponse"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="ImageryServiceBinding" type="tns:ImageryServicePortType"> > <soap:binding style="wrapped" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="addImage"> > <soap:operation soapAction="addImage"/> > <wsdl:input> > <mime:multipartRelated> > <mime:part> > <soap:body parts="body" use="literal"/> > </mime:part> > <mime:part> > <mime:content part="image" type="image/gif"/> > </mime:part> > </mime:multipartRelated> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="getImage"> > <soap:operation soapAction="getImage"/> > <wsdl:input> > <soap:body parts="body" use="literal"/> > </wsdl:input> > <wsdl:output> > <mime:multipartRelated> > <mime:part> > <soap:body parts="status" use="literal"/> > </mime:part> > <mime:part> > <mime:content part="image" type="image/gif"/> > </mime:part> > </mime:multipartRelated> > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="replaceImage"> > <soap:operation soapAction="replaceImage"/> > <wsdl:input> > <mime:multipartRelated> > <mime:part> > <soap:body parts="body" use="literal"/> > </mime:part> > <mime:part> > <mime:content part="newImage" type="image/gif"/> > </mime:part> > </mime:multipartRelated> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="ImageryService"> > <wsdl:port name="ImageryService" binding="tns:ImageryServiceBinding"> > <soap:address > location="http://192.168.1.1:8080/axis/services/ImageryService"/> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > It worked fine when the Image was of type image/jpeg (the wsdl defined the > type as image/jpeg), but now that I am trying to send a gif image, I see that > the client is still setting the Content-Type in the mime attachment to > image/jpeg. > > From what I can see from stepping through the > org.apache.axis.encoding.ser.ImageDataHandlerSerialize.serialize() method, > when the Data Handler is created the content type for the ImageDataSource() > object is not specified and so it defaults to image/jpeg. > > Have I missed something that will allow support for gif (or other > content-types)? > > regards > Karl >