Hi, I am developing a small BookWebService. In this service I have an operation which returns Array Of Book(i.e Book[]) type. It is working fine but I want to return an Image of each book with ISBN,Title, Published Date etc. 
Please help me out, I have already spent lot of time to figure it out but it didnt work.
 

Console Output:

Title Ultimate Axis2
Price 19.0
Published Sun Oct 22 00:00:00 EDT 2006
ISBN ISBN-123
java.lang.RuntimeException: ContentID is null
 at org.apache.axiom.om.impl.llom.OMTextImpl.getDataHandler(OMTextImpl.java :339)
 at ClientRunner.BookServiceADBClient.main(BookServiceADBClient.java:79)

 
 
 
 
Here is the code of schema which I am using to generate code (I am using ADB) 
 
 <xsd:complexType name="Book">
        <xsd:sequence>
          <xsd:element minOccurs="1" maxOccurs="1"
                       name="publishedDate" type="xsd:date" />
          <xsd:element minOccurs="1" maxOccurs="1"
                       name="isbn" type="xsd:string" />
          <xsd:element minOccurs="1" maxOccurs="1"
                       name="title" type="xsd:string" />
          <xsd:element minOccurs="1" maxOccurs="1"
                       name="price" type="xsd:float" />
    <xsd:element minOccurs="0" maxOccurs="1"
                       name="bookImage" type="xsd:imageEle" />
       
        </xsd:sequence>
      </xsd:complexType>
  
  
            <xsd:element name="imageEle">
    <xsd:complexType>
     <xsd:sequence>
      <xsd:element name="meta-info" type="xsd:string"/>
      <xsd:element name="image-attachment" type="xsd:base64Binary"/>
     </xsd:sequence>
    </xsd:complexType>
   </xsd:element>
 
 
 
 
 
Skeleton Code(here i am sending only one book right now just to make image sending work):
 FindBooksResponse response = new FindBooksResponse();
         
         Book book1 =new Book();
         book1.setIsbn("ISBN-123");
         book1.setPrice(19);
         book1.setPublishedDate (new Date());
         book1.setTitle("Ultimate Axis2");
        
        OMFactory fac = OMAbstractFactory.getOMFactory();
        OMNamespace omNs = fac.createOMNamespace(" http://www.example.com/OnlineBooksADBImage/xsd", "bookImage");
        OMElement imageEle = fac.createOMElement("bookImage", omNs);
        Image image;
        String inputImageFileName = "C:\\axis.jpg";
        image = new ImageIO().loadImage(new FileInputStream(inputImageFileName));
        
        ImageDataSource dataSource = new ImageDataSource("axisImage.jpg",image);
        DataHandler dataHandler = new DataHandler(dataSource);

        //create an OMText node with the above DataHandler and set optimized to true
        OMText textData = fac.createOMText(dataHandler, true);
       
        imageEle.addChild(textData);
       
        book1.setBookImage(imageEle);
       
//         Book book2 =new Book();
//         book2.setIsbn("ISBN-9089");
//         book2.setPrice(40);
//         book2.setPublishedDate(new Date());
       
//         book2.setTitle("Professional Axis2");
        
             response.addBook(book1);
           // response.addBook(book2);    
            return response;

 

         

Client Code :

OnlineBooksADBImageServiceStub stub = new OnlineBooksADBImageServiceStub();
  
  Options options =stub._getServiceClient().getOptions();
   options.setProperty(org.apache.axis2.Constants.Configuration.ENABLE_MTOM ,
     Boolean.TRUE);

  FindBooksRequest request = new FindBooksRequest();
  request.setIsbn("123");
    FindBooksResponse response= stub.FindBooks(request);
  //System.out.println("RESPONSE "+ response.);
  Book[] books = response.getBook();
  
  for (int i = 0; i < books.length; i++) {
   System.out.println("Title "+books[i].getTitle() );
   System.out.println("Price "+books[i].getPrice() );
   System.out.println ("Published "+books[i].getPublishedDate() );
   System.out.println("ISBN "+books[i].getIsbn() );
   OMElement imageEle = books[i].getBookImage();
   OMText binaryNode = (OMText) imageEle.getFirstOMChild ();
   
//   Extracting the data and saving
         DataHandler actualDH;
         actualDH = (DataHandler) binaryNode.getDataHandler(); //here RuntimeException is throwing
         Image actualObject = new ImageIO().loadImage( actualDH.getDataSource().getInputStream());
         FileOutputStream imageOutStream = new FileOutputStream("C:\\axisReturns.jpg");
         new ImageIO().saveImage("image/jpeg", actualObject, imageOutStream);

 

 
SOAP RESPONSE:

--MIMEBoundaryurn_uuid_3A1C4DDA46DD411ACD11615456368283
content-type:application/xop+xml; charset=UTF-8; type="text/xml";
content-transfer-encoding:binary
content-id:< 0.urn:uuid:[EMAIL PROTECTED]>

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<ns1:FindBooksResponse xmlns:ns1="http://www.example.com/OnlineBooksADBImage/xsd">
<ns1:book>
<ns1:publishedDate>2006-10-22</ns1:publishedDate>
<ns1:isbn>ISBN-123</ns1:isbn>
<ns1:title>Ultimate Axis2</ns1:title>
<ns1:price>19.0</ns1:price>
<ns1:bookImage>
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
</ns1:bookImage>
</ns1:book>
</ns1:FindBooksResponse>
</soapenv:Body>
</soapenv:Envelope>
--MIMEBoundaryurn_uuid_3A1C4DDA46DD411ACD11615456368283--

 

 

Reply via email to