Sitemap    
  Home Food Photographs IT Parenting Resources Learning  
JAVA
J2SE
JSP
Servlet
Spring
Struts2
Webservice
Consumer using JAX WS Dispatch API and DOM parser 1
Simple Java first CXF Webservice 1
Simple Java first CXF Webservice 2
Simple Java first CXF Webservice 3
Simple Java first CXF Webservice 4
Consumer using JAX WS Dispatch API and DOM parser 1

Webservice used in this example is described in Simple Java first CXF Webservice pages

Steps
1. Create Web application folders and add JAXWS, JAXB jars
2. Change application web.xml
3. Create servlet. Create SOAP request. Parse SOAP response. Display result.

1: Add following jars /WEB-INF/lib/
geronimo-jaxws_2.1_spec-1.0.jar
jaxb-api-2.1.jar
jaxb-impl-2.1.13.jar
jaxb-xjc-2.1.13.jar
jstl.jar
standard.jar

2: Add consumer servlet to /WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
  id="WebApp_ID"
  version="2.4"
  xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>Cxf2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <display-name>UserServlet1</display-name>
    <servlet-name>UserServlet1</servlet-name>
    <servlet-class>
    com.company.servlet.UserServlet1
    </servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>UserServlet1</servlet-name>
    <url-pattern>/user/*</url-pattern>
  </servlet-mapping>

</web-app>

Build SOAP request using various javax.xml.soap classes. It should look like following XML. Refer UserServlet1.java
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header /> <SOAP-ENV:Body> <trup:list
xmlns:trup="http://www.trupti.com/"> <fname>ALL</fname> </trup:list>
</SOAP-ENV:Body> </SOAP-ENV:Envelope>

Then parse SOAP response using org.w3c.dom classes.  Refer UserServlet1.java
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:listResponse xmlns:ns1="http://www.trupti.com/">
<list> <item>
<firstName>Donald</firstName>
<lastName>Duck</lastName>
<userId>ddonald</userId>
<userRole>duck</userRole>
</item> <item>
<firstName>Micky</firstName>
<lastName>Mouse</lastName>
<userId>mmouse</userId>
<userRole>mouse</userRole>
</item> <item>
<firstName>Pluto</firstName>
<lastName>Dog</lastName>
<userId>pdog</userId>
<userRole>dog</userRole>
</item> </list>
</ns1:listResponse>
</soap:Body>
</soap:Envelope>

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3: Consumer /WEB-INF/classes/com/company/servlet/UserServlet1
package com.company.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.Dispatch;
import javax.xml.ws.Service;

import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class UserServlet1
    extends
    HttpServlet {
  private static final long serialVersionUID = 1L;
  String wsloc = "http://localhost:81/cxfspring/services/userDao";
  String namespace = "http://www.trupti.com/";
  //UserDaoService defined in @WebService UserDao interface
  QName serviceName = new QName(namespace, "UserDaoService");
  //UserDaoPort defined in @WebService UserDao interface
  QName portName = new QName(namespace, "UserDaoPort");

  public void doGet(HttpServletRequest request,
      HttpServletResponse response) throws ServletException,
      IOException {
    process(request, response);
  }

  public void doPost(HttpServletRequest request,
      HttpServletResponse response) throws ServletException,
      IOException {
    process(request, response);
  }

  public void process(HttpServletRequest request,
      HttpServletResponse response) throws ServletException,
      IOException {

    try {
      String methodname = request.getParameter("methodname");
      String firstname = request.getParameter("firstname");
      URL wsdlURL = new URL(wsloc + "?wsdl");
      Service service = Service.create(wsdlURL, serviceName);
      Dispatch<SOAPMessage> dispatch = service.createDispatch(
          portName, SOAPMessage.class, Service.Mode.MESSAGE);
      MessageFactory factory = MessageFactory.newInstance();

      SOAPMessage soapRequest = factory.createMessage();
      SOAPEnvelope envelope = soapRequest.getSOAPPart()
          .getEnvelope();
      soapRequest.getSOAPBody().addBodyElement(
          envelope.createName(methodname, "trup", namespace))
          .addChildElement(envelope.createName("fname"))
          .addTextNode(firstname);

      SOAPMessage soapResponse = dispatch.invoke(soapRequest);

      // ns1:listResponse
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
      out.println("<html><body>");
      out.println("<table bgcolor='#EFEFEF' border='1'>");
      out.println("<tr>");
      out.println("<td colspan='4'><Strong>");
      out.println("JAX-WS Dispatch API Consumer and "
          + "DOM parser</Strong></td>");
      out.println("</tr>");
      out.println("<tr>");
      out.println("<td><Strong>First Name</Strong></td>");
      out.println("<td><Strong>Last Name</Strong></td>");
      out.println("<td><Strong>User Id</Strong></td>");
      out.println("<td><Strong>User Role</Strong></td>");
      out.println("</tr>");

      Node node1 = soapResponse.getSOAPBody().getFirstChild();
      // list
      Node node2 = node1.getFirstChild();
      NodeList nodeList1 = node2.getChildNodes();
      for (int i = 0; i < nodeList1.getLength(); i++) {
        // item
        Node node3 = nodeList1.item(i);
        out.println("<tr>");
        NodeList nodeList2 = node3.getChildNodes();
        for (int j = 0; j < nodeList2.getLength(); j++) {
          Node node4 = nodeList2.item(j);
          out.println("<td>" + node4.getTextContent() + "</td>");
        }
        out.println("</tr>");
      }
      out.println("</table></body></html>");

    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Test using following URL. Don't forget to start webservice.
http://localhost:81/consumer/user/?methodname=list&firstname=ALL

ADD TO DEL.ICIO.US ADD TO DIGG ADD TO FURL ADD TO REDDIT ADD TO STUMBLEUPON ADD TO TECHNORATI FAVORITES ADD TO SQUIDOO ADD TO YAHOO MYWEB ADD TO ASK ADD TO GOOGLE
Post your comments:
Your Name: 
Security check:
Your Comment: 1500 chars
Latest
How to loop arraylist JAVA6 Syntax
How to iterrate through ArrayList and display multiple rows using for loop JAVA6 syntax..
Java JSP  2010-Oct-12
How to loop arraylist
How to iterrate through ArrayList and display multiple rows using for loop, JSTL tags..
Java JSP  2010-Oct-12
Consumer using JAX WS Dispatch API and DOM parser 1
Access/Consume Webservice using Servlet, JAX-WS Dispatch API dynamic client and parsing SOAP response using DOM parser...
Java Webservice  2010-Sep-20
Simple Java first CXF Webservice 4
Building Simple Java first CXF webservice using CXFServlet, Spring, jaxws:endpoint, @WebService, @SOAPBinding, @WebResult
Java Webservice  2010-Sep-19
Simple Java first CXF Webservice 3
Building Simple Java first CXF webservice using CXFServlet, Spring, jaxws:endpoint, @WebService, @SOAPBinding, @WebResult
Java Webservice  2010-Sep-18
Simple Java first CXF Webservice 1
Building Simple Java first CXF webservice using CXFServlet, Spring, jaxws:endpoint, @WebService, @SOAPBinding, @WebResult
Java Webservice  2010-Sep-18
Simple Java first CXF Webservice 2
Building Simple Java first CXF webservice using CXFServlet, Spring, jaxws:endpoint, @WebService, @SOAPBinding, @WebResult
Java Webservice  2010-Sep-18
Encoding special characters in userinput or on server
Encoding can be done either in Javascript or JAVA encodeURIComponent, escape, java.net.URLEncoder..
Java JSP  2010-Aug-09
Jstl fmt tag i18n formatdate formatcurrency
fmt:setBundle, native2ascii.exe, fmt:message, fmt:setLocale, fmt:formatDate, fmt:formatNumber type=currency..
Java JSP  2010-Aug-05
How to read and write a file
How to read and write a file java.io.BufferedReader,java.io.FileReader, InputStreamReader ...
Java J2SE  2010-Aug-04
jQuery validate form using ajax 2
How to validate/submit form using ajax and jQuery input#, ($.ajax)..
Javascript  2010-Jul-23
jQuery validate form using ajax 1
How to validate/submit form using ajax and jQuery ($.ajax)..
Javascript  2010-Jul-23
How to create datasource in RAD Websphere
Create JDBC provider, datasource and JAAS security setup, JDBC connection URLs
Servers Websphere  2010-Jul-08
Get Started 4
Struts2 framework structure, how various components fit together
Java Struts2  2010-Jul-07
How to populate a form when JSP is called first time
This is achieved throught setting bean in request, using frameworks like Struts2, Spring3..
Java JSP  2010-Jul-07
Spring3 And Hibernate 4
Spring3 and Hibernate 3.5.3 working together @Controller, @RequestMapping, @InitBinder, HibernateTransactionManager, LocalSessionFactoryBean, HibernateTemplate
Java Spring  2010-Jul-07