WEBSERVICE USING APACHE AXIS TUTORIAL-2

WEBSERVICE USING APACHE AXIS TUTORIAL-2

WEBSERVICE USING APACHE AXIS TUTORIAL-2

--Ads--

WEBSERVICE USING APACHE AXIS TUTORIAL-2
Accessing ejb-webservice  using  WAP (Wireles-Application Protocol)
R.S.RAMASWAMY ([email protected])

c:\sam> edit ejbaxiswapservlet.java

******************************************

//ejbaxiswapservlet.java

----------------------

import java.net.URL;

import org.apache.axis.client.Service;

import org.apache.axis.client.Call;

import org.apache.axis.encoding.XMLType;

import javax.xml.rpc.ParameterMode;

import javax.xml.namespace.QName;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

public class ejbaxiswapservlet extends HttpServlet

{

    public void doPost (HttpServletRequest request,  

                        HttpServletResponse response)

                 throws ServletException, IOException

    {

      response.setContentType("text/vnd.wap.wml");

        PrintWriter out = response.getWriter();

        String sql = request.getParameter("text1");

        try{

            String url = "http://localhost:8080/axis/services/sqlservice";

            String method = "getdata";

            Service   service = new Service();

 Call     call = (Call) service.createCall();

      call.setTargetEndpointAddress ( url);

      call.setOperationName 0

             ( new QName("sqlservice",method));

         call.addParameter("sql",XMLType.XSD_STRING,ParameterMode.IN);

    call.setReturnType(XMLType.XSD_STRING); 1

            System.out.println("Call Ok");

  Object[] params = new Object[] { args[0] };

       System.out.println("Params ok..."); 2

     String s = (String) call.invoke(params);

         System.out.println(s);

      out.println("<p>"); 3

      out.println("ejb with wap<br/>");

      out.println(s);

      out.println("</p>"); 4

      out.println("</card>");

      out.println("</wml>");

        }catch(Exception e) 5

                { System.out.println(""+e);  }

    }

} 6

********************************************

Complie and copy  the class file to  tomcat as below.

  7

c:\sam> javac ejbaxiswapservlet.java 

copy c:\sam\ejbaxiswapservlet.class  to

     d:\tomcat 4.1\webapps\axis\web-inf\classes 8

Edit web.xml in 

  d:\tomcat 4.1\webapps\axis\web-inf folder 

      <servlet> 9

     <servlet-name>

        ejbaxiswapservlet

       </servlet-name> 0

     <servlet-class>

     ejbaxiswapservlet

     </servlet-class> 1

     </servlet>

     <servlet-mapping>

<servlet-name> 2

ejbaxiswapservlet

</servlet-name>

<url-pattern> 3

     \servlet\ejbaxiswapservlet

 </url-pattern>

     </servlet-mapping> 4

For accessing servlet, create a wml file in the working folder

and copy the file to

d:\tomcat 4.1\webapps\axis 5

c:\sam> edit ejbaxiswapservlet.wml

***************************************************

ejbaxiswapservlet.wml 6

---------------------

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC 7

 "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

   <card id="card1"> 8

     <p>      

Query? <input type="text"  name="text1"   />  

   <do   type="accept"> 9

   <go  method="post" href="http://localhost:8080/axis/servlet/ejbaxiswapservlet"> 

           <postfield name="text1"  value="$text1"/>

   </go> 0

   </do>

   </p>            

   </card> 1

</wml>

*************************************************

Open 'Microsoft Mobile browser'and type the url as 2

'http://localhost:8080/axis/ejbaxiswapservlet.wml'

Make sure that tomcat is running. Enter sql query in the text box and submit it. we'll get the resultset as per the query. But, WAP is no-longer, the favoured wireless client because of limited functionality. Color graphics, games and animations are expected today. 

J2ME is the best solution for such apps, because,it is platform independent. 3

We now demonstrate how we can access an ejb-webservice from a j2me wireless client.( continued in axis3-3.htm

                 Visit  http://in.geocities.com/rsramsam