Anyone? What do I need to add to my WSDL to make this work with Axis 1.1? -Jason
On Thu, 21 Oct 2004 11:29:01 -0500, Jason Boehle <[EMAIL PROTECTED]> wrote: > Hi all, > > I'm having some problems getting SOAP attachments working in my > webservice, and was wondering > > Here are the relevant snippets from the WSDL: > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > <definitions name="ActuateAPI" > xmlns="http://schemas.xmlsoap.org/wsdl/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:typens="http://schemas.actuate.com/actuate8" > xmlns:wsdlns="http://schemas.actuate.com/actuate8/wsdl" > targetNamespace="http://schemas.actuate.com/actuate8/wsdl"> > <types> > <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" > xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > targetNamespace="http://schemas.actuate.com/actuate8" > elementFormDefault="qualified"> > <xsd:complexType name="Attachment"> > <xsd:all> > <xsd:element name="ContentId" > type="xsd:string"/> > <xsd:element name="ContentType" > type="xsd:string"/> > <xsd:element name="ContentLength" > type="xsd:long" minOccurs="0"/> > <xsd:element name="ContentEncoding" > type="xsd:string" minOccurs="0"/> > <xsd:element name="Locale" type="xsd:string" > minOccurs="0"/> > <xsd:element name="ContentData" > type="xsd:base64Binary" minOccurs="0"/> > </xsd:all> > </xsd:complexType> > <xsd:complexType name="OSISubmitExec"> > <xsd:sequence> > <xsd:element name="JobID" type="xsd:int"/> > <xsd:element name="ExecutableFile" > type="typens:Attachment" minOccurs="0"/> > <xsd:element > name="ExecutableFilePhysicalPath" type="xsd:string" > minOccurs="0"/> > </xsd:sequence> > </xsd:complexType> > <xsd:element name="OSISubmitExec" > type="typens:OSISubmitExec"/> > </xsd:schema> > </types> > <message name="OSISubmitExec"> > <part name="Request" element="typens:OSISubmitExec"/> > </message> > <portType name="ActuateSoapPort"> > <operation name="oSISubmitExec"> > <input message="wsdlns:OSISubmitExec"/> > <output message="wsdlns:OSISubmitExecResponse"/> > </operation> > </portType> > <binding name="ActuateSoapBinding" type="wsdlns:ActuateSoapPort"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <operation name="oSISubmitExec"> > <soap:operation soapAction=""/> > <input> > <soap:body use="literal" parts="Request"/> > </input> > <output> > <soap:body use="literal" parts="Response"/> > </output> > </operation> > </binding> > <service name="ActuateAPI"> > <port name="ActuateSoapPort" binding="wsdlns:ActuateSoapBinding"> > <soap:address location="http://greenwich:8000"/> > </port> > </service> > </definitions> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Here is the msg sent to my service: > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > POST /server/ss/services/ActuateSoapPort HTTP/1.1 > Content-Type: > Multipart/Related;boundary=MIME_boundary;type="text/xml";start="<response.xml>" > Transfer-Encoding:chunked HOST:jboehle7 > SOAPAction:"" > > 375 > > --MIME_boundary > Content-Type: text/xml;charset=utf-8 > Content-Transfer-Encoding:8bit > Content-ID:<response.xml> > > <?xml version='1.0' ?> > <SOAP-ENV:Envelope > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <SOAP-ENV:Header xmlns="http://schemas.actuate.com/actuate8"></SOAP-ENV:Header> > <SOAP-ENV:Body> > <ACTU:OSISubmitExec xmlns:ACTU="http://schemas.actuate.com/actuate8" > xmlns="http://schemas.actuate.com/actuate8"> > <JobID xsi:type="xsd:unsignedInt">27</JobID> > <ExecutableFile xsi:type="Attachment"> > <ContentId xsi:type="xsd:string">ExecutableFile</ContentId> > <ContentType xsi:type="xsd:string">binary</ContentType> > <ContentEncoding xsi:type="xsd:string">binary</ContentEncoding> > </ExecutableFile> > </ACTU:OSISubmitExec> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > > 5E > > --MIME_boundary > Content-Type: binary > Content-Transfer-Encoding:binary > Content-ID:file > > 2A9 PK <<plus a bunch of other binary data>> > > --MIME_boundary-- > > 0 > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Here is the response sent back by Axis, it never calls my service (at > least my breakpoint is never hit): > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > HTTP/1.1 500 Internal Server Error Date: Wed, 20 Oct 2004 22:26:25 GMT > Server: Jetty/4.2.21 (Windows XP/5.1 x86 java/1.4.2_05) > Content-Type: text/xml; charset=utf-8 > Transfer-Encoding: chunked > > 1cd > > <?xml version="1.0" encoding="UTF-8"?> > <soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <soapenv:Body> > <soapenv:Fault> > <faultcode>soapenv:Server.userException</faultcode> > <faultstring>java.lang.IllegalArgumentException: argument type > mismatch</faultstring> > <detail/> > </soapenv:Fault> > </soapenv:Body> > </soapenv:Envelope> > > 0 > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > I imagine I have to add something to the WSDL to specify > mimeMultipart/Related or something like that? Sorry for my naïve > question, I'm a SOAP newbie. So what is it in the WSDL that doesn't > match the message that is sent? > > Thanks! > > Jason Boehle > [EMAIL PROTECTED] >