Core Java| JSP| Servlets| XML| EJB| JEE5| Web Services| J2ME| Glossary| Questions?

 

 

 

 

 

 

 

 

 

 

 

 

 

Search Tutorials

Latest Questions
Comments
 
SOAP with Attachments API for Java 
 

In this section we will develop SOAP application having a text attachment.

 

SOAP with Attachments API for Java

                         

Project Requirement
In this section we will develop SOAP application having   a text attachment.
Then it retrieves the content of the attachment file and display it on the screen

Solution

  • Make a java application project
  • Create a java class
  • Write the source code
  • Make a attatchment text file
  • Compile the code
  • Build project
  • Execute the application
Create a java application
  • Open  the Netbeans
  • Take a new Java application project as shown below in Figure.1

Attachments API for Java
Figure 1

  • Give the project  name as SOAP-saaj as given below in Figure. 2

Attachments API for Java

Figure. 2

  • This creates the java project.

Creating the java Class

  • Right Click on the project
  • Select NewàJava Class as shown below in Figure. 3.

 Attachments API for Java

                       Figure. 3

  • Give the file name as attach1.java as shown below in Figure. 4.
  • This creates the attatch1.java.

Attachments API for Java

Figure. 4

Change the content of java file
Now make the changes in the code of attach1.java in  file as code  given below.

package pack1;
import java.io.*;
import java.util.Iterator;
import javax.xml.soap.*;

public class attatch1 {
    public static void main(String[] args) {
     FileReader fr = null;
        BufferedReader br = null;
        String line = "";
        try {
            MessageFactory messageFactory = MessageFactory.newInstance();
            SOAPMessage message = messageFactory.createMessage();
            SOAPHeader header = message.getSOAPHeader();
            SOAPBody body = message.getSOAPBody();
            header.detachNode();
            AttachmentPart attachment1 = message.createAttachmentPart();

            fr = new FileReader(new File("rose1.txt"));
            br = new BufferedReader(fr);

            String stringContent = "";
            line = br.readLine();

            while (line != null) {
                stringContent = stringContent.concat(line);
                stringContent = stringContent.concat("\n");
                line = br.readLine();
            }

            attachment1.setContent(stringContent, "text/plain");
            attachment1.setContentId("attached_text");

            message.addAttachmentPart(attachment1);
            Iterator iterator = message.getAttachments();

             while (iterator.hasNext()) {
                AttachmentPart attached = (AttachmentPart) iterator.next();

                String id = attached.getContentId();
                String type = attached.getContentType();
                System.out.println(
                        "Attachment " + id + " has content type " + type);

                if (type.equals("text/plain")) {
                    Object content = attached.getContent();
                    System.out.println("Attachment contains:\n" + content);
                }
            }
        } catch (FileNotFoundException e) {
            System.out.println("File not found: " + e.toString());
            System.exit(1);
        } catch (IOException e) {
            System.out.println("I/O exception: " + e.toString());
            System.exit(1);
        }
        catch (ArrayIndexOutOfBoundsException e)
        {
        System.out.println("array exception" +e.toString());
        }
        catch (Exception ex) {
            ex.printStackTrace();
        } 
    }
}

  • Now in the code makes modification as code given below.

package pack1;
import java.io.*;
import java.util.Iterator;
import javax.xml.soap.*;

public class attatch1 {
    public static void main(String[] args) {
     FileReader fr = null;
        BufferedReader br = null;
        String line = "";

        try {
            MessageFactory messageFactory = MessageFactory.newInstance();
            SOAPMessage message = messageFactory.createMessage();
            SOAPHeader header = message.getSOAPHeader();
            SOAPBody body = message.getSOAPBody();
            header.detachNode();
      
            AttachmentPart attachment1 = message.createAttachmentPart();

            fr = new FileReader(new File("rose1.txt"));
            br = new BufferedReader(fr);

            String stringContent = "";
            line = br.readLine();

            while (line != null) {
                stringContent = stringContent.concat(line);
                stringContent = stringContent.concat("\n");
                line = br.readLine();
            }

            attachment1.setContent(stringContent, "text/plain");
            attachment1.setContentId("attached_text");

            message.addAttachmentPart(attachment1);
            Iterator iterator = message.getAttachments();

             while (iterator.hasNext()) {
                AttachmentPart attached = (AttachmentPart) iterator.next();

                String id = attached.getContentId();
                String type = attached.getContentType();
                System.out.println(
                        "Attachment " + id + " has content type " + type);

                if (type.equals("text/plain")) {
                    Object content = attached.getContent();
                    System.out.println("Attachment contains:\n" + content);
                }
            }
        }
             catch (FileNotFoundException e) {
            System.out.println("File not found: " + e.toString());
            System.exit(1);
          }

            catch (IOException e) {
            System.out.println("I/O exception: " + e.toString());
            System.exit(1);
        }
        catch (ArrayIndexOutOfBoundsException e) {
        System.out.println("array exception" +e.toString());
        }
        catch (Exception ex) {
            ex.printStackTrace();
        } 
    }
}

Creating  text attatchment file

  • Now Right Click on the project folder
  • Select  the Project properties
  • Copy the project folder location as given in Figure 5 below.
  • Open it in Window Explorer

Attachments API for Java

Figure. 5

  • In this folder make a rose1.txt   file  which have been given as the argument name in the above code
  • Give some content as

Hi
Welcome to the SAAJ Application
This is the Example of Attached Text Message.
Best Regards
RoseIndia

Running the project
  • Now run the file.
  • Right Click and select run file
  • It executes and give the output as  given below in Figure 6.

Attachments API for Java

Figure 6

API used in the program
         This file uses  the  file handling API  such as FileReader  and
         BufferedReader and Web Service API  as given below

  • MessageFactory:-It is a factory for creating SOAPMessage objects  A MessageFactory object  is created by  newInstance () method in SAAJ client file.
  • SOAPMessage:-It is the root class for all SOAP messages. A SOAPMessage object consists of a SOAP part and optionally one or  attachment parts. The SOAP part for a SOAPMessage object is a SOAPPart  object.  SOAP part contains information used for message routing and identification. All data in the SOAP Part of a message     must be in XML format. 
  • SOAPHeader:- SOAP Header is the optional Element. It contains data for application in XML form.For example, transaction semantics, authentication information, and so on, can be specified as the content of a SOAPHeader object
  • SOAPBody :- It is the required Element of the SOAP.It has the main message contents in the XML form.
  • AttachmentPart :-It  is  a single attachment to a SOAPMessage object. A SOAPMessage object may contain zero, one, or many AttachmentPart objects. Each AttachmentPart object consists of two parts, application-specific content and associated MIME headers.

Download Code

                         
» View all related tutorials
Related Tags: c gui web ide netbeans ui service help services vi deploy id tool developer oo beans to developers bean e

Leave your comment:

Name:

Email:

URL:

Title:

Comments:


Enter Code:

Audio Version
Reload Image
 

Note: Emails will not be visible or used in any way, and are not required. Please keep comments relevant. Any content deemed inappropriate or offensive may be edited and/or deleted.

No HTML code is allowed. Line breaks will be converted automatically. URLs will be auto-linked. Please use BBCode to format your text.

Add This Tutorial To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Training Courses
Tell A Friend
Your Friend Name
Software Solutions
Least Viewed
Most Rated
Recently Viewed
Search Tutorials

 

 
 

Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Search Engine | News Archive | Jboss 3.0 tutorial | Free Linux CD's | Forum | Blogs

About Us | Advertising On RoseIndia.net  | Site Map

India News

Indian Software Development Company | iPhone Development Company in India | Flex Development Company in India | Java Training Delhi | Java Training at Noida |

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright © 2008. All rights reserved.