Search...
FAQs
Subscribe
Pie
FAQs
Recent topics
Flagged topics
Hot topics
Best topics
Search...
Search within I/O and Streams
Search Coderanch
Advance search
Google search
Register / Login
Win a copy of
Eclipse Collections Categorically: Level up your programming game
this week in the
Open Source Projects
forum!
Post Reply
Bookmark Topic
Watch Topic
New Topic
programming forums
Java
Mobile
Certification
Databases
Caching
Books
Engineering
Micro Controllers
OS
Languages
Paradigms
IDEs
Build Tools
Frameworks
Application Servers
Open Source
This Site
Careers
Other
Pie Elite
all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Campbell Ritchie
Tim Cooke
paul wheaton
Ron McLeod
Jeanne Boyarsky
Sheriffs:
Paul Clapham
Saloon Keepers:
Tim Holloway
Roland Mueller
Bartenders:
Forum:
I/O and Streams
Axis2 - Transfer document using MTOM
Anjali S Sharma
Ranch Hand
Posts: 279
posted 15 years ago
Number of slices to send:
Optional 'thank-you' note:
Send
am trying to transfer content using MTOM. The service sends some file (say PDF file) and client saves that file on the disk.
The service does the following
public GetResumeContentResponse getResumeContent(GetResumeContent getResumeContent) { String resumeId = getResumeContent.getResumeId(); System.out.println("Resume ID is --"+resumeId); GetResumeContentResponse grs = new GetResumeContentResponse(); javax.activation.DataHandler dataHandler = new DataHandler(new FileDataSource("C:\\source\\LTA.pdf")); grs.setContent(dataHandler); return grs; }
and client does the following
public static void writeToFile(String fileName, InputStream iStream) throws IOException { fileName = "C:\\target\\"+fileName; File theFile = new File(fileName); BufferedOutputStream fOut = null; try { fOut = new BufferedOutputStream(new FileOutputStream(theFile)); byte[] buffer = new byte[32 * 1024]; int bytesRead = 0; while ((bytesRead = iStream.read(buffer)) != -1) { fOut.write(buffer, 0, bytesRead); } }catch (Exception e) { e.printStackTrace(); }finally { fOut.close(); iStream.close(); } }
But in client, the "handler" is coming out to be null.
WSDL is as follows
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.examples.com/wsdl/ResumeService.wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ResumeService" targetNamespace="http://www.examples.com/wsdl/ResumeService.wsdl"> <wsdl:types> <xsd:schema targetNamespace="http://www.examples.com/wsdl/ResumeService.wsdl"> <xsd:element name="getResumeId"> <xsd:complexType> <xsd:sequence> <xsd:element name="firstName" type="xsd:string" /> <xsd:element name="lastName" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="getResumeIdResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="resumeId" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="getResumeDetails"> <xsd:complexType> <xsd:sequence> <xsd:element name="resumeId" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="getResumeDetailsResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="firstName" type="xsd:string"></xsd:element> <xsd:element name="lastName" type="xsd:string"></xsd:element> <xsd:element name="address" type="tns:addressType"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="addressType"> <xsd:sequence> <xsd:element name="city" type="xsd:string" /> <xsd:element name="state" type="xsd:string" /> <xsd:element name="country" type="xsd:string" /> <xsd:element name="mobile" type="xsd:string" /> <xsd:element name="email" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:element name="getAllResumeIdsResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="allResumeIds" type="xsd:string" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="updateResumeDetails"> <xsd:complexType> <xsd:sequence> <xsd:element name="resumeId" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="updateResumeDetailsResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="updateStatus" type="xsd:boolean"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="getResumeContent"> <xsd:complexType> <xsd:sequence> <xsd:element name="resumeId" type="xsd:string"> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="getResumeContentResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="content" type="xsd:base64Binary"> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="updateResumeContent"> <xsd:complexType> <xsd:sequence> <xsd:element name="resumeId" type="xsd:string"> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="updateResumeContentResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="content" type="xsd:base64Binary"> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="getResumeIdRequest"> <wsdl:part element="tns:getResumeId" name="parameters" /> </wsdl:message> <wsdl:message name="getResumeIdResponse"> <wsdl:part element="tns:getResumeIdResponse" name="parameters" /> </wsdl:message> <wsdl:message name="getResumeDetailsRequest"> <wsdl:part name="parameters" element="tns:getResumeDetails"></wsdl:part> </wsdl:message> <wsdl:message name="getResumeDetailsResponse"> <wsdl:part name="parameters" element="tns:getResumeDetailsResponse"></wsdl:part> </wsdl:message> <wsdl:message name="getAllResumeIdsRequest" /> <wsdl:message name="getAllResumeIdsResponse"> <wsdl:part name="parameters" element="tns:getAllResumeIdsResponse"></wsdl:part> </wsdl:message> <wsdl:message name="updateResumeDetailsRequest"> <wsdl:part name="parameters" element="tns:updateResumeDetails"></wsdl:part> </wsdl:message> <wsdl:message name="updateResumeDetailsResponse"> <wsdl:part name="parameters" element="tns:updateResumeDetailsResponse"></wsdl:part> </wsdl:message> <wsdl:message name="getResumeContentRequest"> <wsdl:part name="parameters" element="tns:getResumeContent"></wsdl:part> </wsdl:message> <wsdl:message name="getResumeContentResponse"> <wsdl:part name="parameters" element="tns:getResumeContentResponse"></wsdl:part> </wsdl:message> <wsdl:message name="updateResumeContentRequest"> <wsdl:part name="parameters" element="tns:updateResumeContent"></wsdl:part> </wsdl:message> <wsdl:message name="updateResumeContentResponse"> <wsdl:part name="parameters" element="tns:updateResumeContentResponse"></wsdl:part> </wsdl:message> <wsdl:portType name="ResumeService"> <wsdl:operation name="getResumeId"> <wsdl:input message="tns:getResumeIdRequest" /> <wsdl:output message="tns:getResumeIdResponse" /> </wsdl:operation> <wsdl:operation name="getResumeDetails"> <wsdl:input message="tns:getResumeDetailsRequest"></wsdl:input> <wsdl:output message="tns:getResumeDetailsResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="getAllResumeIds"> <wsdl:input message="tns:getAllResumeIdsRequest"></wsdl:input> <wsdl:output message="tns:getAllResumeIdsResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="updateResumeDetails"> <wsdl:input message="tns:updateResumeDetailsRequest"></wsdl:input> <wsdl:output message="tns:updateResumeDetailsResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="getResumeContent"> <wsdl:input message="tns:getResumeContentRequest"></wsdl:input> <wsdl:output message="tns:getResumeContentResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="updateResumeContent"> <wsdl:input message="tns:updateResumeContentRequest"></wsdl:input> <wsdl:output message="tns:updateResumeContentResponse"></wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="ResumeServiceSOAP" type="tns:ResumeService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getResumeId"> <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/getResumeId" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getResumeDetails"> <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/getResumeDetails" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getAllResumeIds"> <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/getAllResumeIds" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="updateResumeDetails"> <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/updateResumeDetails" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getResumeContent"> <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/getResumeContent" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="updateResumeContent"> <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/updateResumeContent" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="ResumeService"> <wsdl:port binding="tns:ResumeServiceSOAP" name="ResumeServiceSOAP"> <soap:address location="http://www.example.org/" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
Please help me in resolving this.
Thank you
Anjali S Sharma
Ranch Hand
Posts: 279
posted 15 years ago
Number of slices to send:
Optional 'thank-you' note:
Send
Posted here by mistake. I am starting another
thread
in Web services section. Please delete this one.
thank you
Please enjoy this holographic presentation of our apocalyptic dilemma right after this tiny ad:
Clean our rivers and oceans from home
https://www.kickstarter.com/projects/paulwheaton/willow-feeders
reply
reply
Bookmark Topic
Watch Topic
New Topic
Boost this thread!
Similar Threads
Axis2 - Handlers for SOAP headers
Axis2- enable security using Rampart
Client for Axis2 POJO webservice giving error
WSDL - One way operations
Axis2 - Transfer document using MTOM
More...