axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Asit Jaiswal (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (AXIS2-4361) Problem in transportsession on the client side AXIS 2 1.3 JDK 1.6
Date Wed, 24 Jun 2009 05:32:07 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-4361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12723446#action_12723446
] 

Asit Jaiswal edited comment on AXIS2-4361 at 6/23/09 10:31 PM:
---------------------------------------------------------------

Hello Deepal,

When I used the Same Service client through out the invocation, the transport session scope
act as application scope,
here is the listing which i modified.....as per your comments

initializing the ServiceClient object sc in the init method of servlet

please help me with this,
sorry for the late reply 

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.swing.Icon;

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.tomcat.util.http.Cookies;


import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;



/**
 * Servlet implementation class Support
 */
public class Support extends HttpServlet {
	 static ServiceClient sc=null;
	String ansfinal="";
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */

    public Support() {
        super();
        // TODO Auto-generated constructor stub
    }
    public void init(){
    	System.out.println("I am init method");
    	try {
			sc = new ServiceClient();
			System.out.println("i am in try catch of init "+sc);
		} catch (AxisFault e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
		// TODO Auto-generated method stub
	
	
		
		
		
		//System.out.println("the session id is "+h.getId());
		
		String arg1 = (request.getParameter("n1"));
		String arg2 = (request.getParameter("n2"));
		
		response.setContentType("text/html");
		PrintWriter  pw = response.getWriter();
		Support support = new Support();
		support.setCacheExpireDate(response,1);
		System.out.println("hello i am one");
		String ans=support.usingaxiom(arg1,arg2);
	
		
	
		
		pw.println("the answer is "+ans);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
		// TODO Auto-generated method stub
	}
	public String usingaxiom(String param1,String param2){
		
		String response="";
		try{
		
		//sc.engageModule("addressing");

			Options opts = new Options();

		opts.setTo(new EndpointReference("http://localhost:8080/Calculator/services/Addition"));
		//opts.setAction("urn:add");

		opts.setManageSession(true);

		sc.setOptions(opts);

		OMElement omle = sc.sendReceive(createPayLoad(param1,param2));

		response = omle.getFirstElement().getText();	 

		}catch(Exception e){
			System.out.println("the error is "+e);
		}
		
		return response;
	}
	public OMElement createPayLoad(String p1,String p2){
		OMFactory omf = OMAbstractFactory.getOMFactory();
		OMNamespace omNs =  omf.createOMNamespace("http://ws.apache.org/axis2","ns1");
		OMElement method = omf.createOMElement("add",omNs);
		OMElement value1 = omf.createOMElement("n1",omNs);
		
		
		value1.addChild(omf.createOMText(value1,p1));
		
		method.addChild(value1);
		OMElement value2 = omf.createOMElement("n2",omNs);
		value2.addChild(omf.createOMText(value2,p2));
		method.addChild(value2);
		
		
		return method;
	}
	public static void setCacheExpireDate(HttpServletResponse response,int seconds) {
		if (response != null) {
			Calendar cal = new GregorianCalendar();
			cal.roll(Calendar.SECOND, seconds);
			response.setHeader("Cache-Control", "PUBLIC, max-age=" + seconds + ", must-revalidate");
			response.setHeader("Expires", htmlExpiresDateFormat().format(cal.getTime()));
		}
	}

        public static DateFormat htmlExpiresDateFormat() {
            DateFormat httpDateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z",
Locale.US);
            httpDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
            return httpDateFormat;
        }


	
}

Thanks,
Asit Jaiswal


      was (Author: asitjaiswal):
    Hello Deepal,

When I used the Same Service client through out the invocation, the transport session scope
act as application scope,
here is the listing which i modified.....as per your comments

initializing the ServiceClient object sc in the init method of servlet

please help me with this,
sorry for the late reply 

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.swing.Icon;

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.tomcat.util.http.Cookies;


import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;



/**
 * Servlet implementation class Support
 */
public class Support extends HttpServlet {
	 static ServiceClient sc=null;
	String ansfinal="";
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */

    public Support() {
        super();
        // TODO Auto-generated constructor stub
    }
    public void init(){
    	System.out.println("I am init method");
    	try {
			sc = new ServiceClient();
			System.out.println("i am in try catch of init "+sc);
		} catch (AxisFault e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
		// TODO Auto-generated method stub
	
	
		
		
		
		//System.out.println("the session id is "+h.getId());
		
		String arg1 = (request.getParameter("n1"));
		String arg2 = (request.getParameter("n2"));
		
		response.setContentType("text/html");
		PrintWriter  pw = response.getWriter();
		Support support = new Support();
		support.setCacheExpireDate(response,1);
		System.out.println("hello i am one");
		String ans=support.usingaxiom(arg1,arg2);
	
		
	
		
		pw.println("the answer is "+ans);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
		// TODO Auto-generated method stub
	}
	public String usingaxiom(String param1,String param2){
		
		String response="";
		try{
		
		//sc.engageModule("addressing");

			Options opts = new Options();

		opts.setTo(new EndpointReference("http://localhost:8080/Calculator/services/Addition"));
		//opts.setAction("urn:add");

		opts.setManageSession(true);

		sc.setOptions(opts);

		OMElement omle = sc.sendReceive(createPayLoad(param1,param2));

		response = omle.getFirstElement().getText();	 

		}catch(Exception e){
			System.out.println("the error is "+e);
		}
		
		return response;
	}
	public OMElement createPayLoad(String p1,String p2){
		OMFactory omf = OMAbstractFactory.getOMFactory();
		OMNamespace omNs =  omf.createOMNamespace("http://ws.apache.org/axis2","ns1");
		OMElement method = omf.createOMElement("add",omNs);
		OMElement value1 = omf.createOMElement("n1",omNs);
		
		
		value1.addChild(omf.createOMText(value1,p1));
		
		method.addChild(value1);
		OMElement value2 = omf.createOMElement("n2",omNs);
		value2.addChild(omf.createOMText(value2,p2));
		method.addChild(value2);
		
		
		return method;
	}
	public static void setCacheExpireDate(HttpServletResponse response,int seconds) {
		if (response != null) {
			Calendar cal = new GregorianCalendar();
			cal.roll(Calendar.SECOND, seconds);
			response.setHeader("Cache-Control", "PUBLIC, max-age=" + seconds + ", must-revalidate");
			response.setHeader("Expires", htmlExpiresDateFormat().format(cal.getTime()));
		}
	}

        public static DateFormat htmlExpiresDateFormat() {
            DateFormat httpDateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z",
Locale.US);
            httpDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
            return httpDateFormat;
        }


	
}

  
> Problem in transportsession on the client side AXIS 2 1.3 JDK 1.6
> -----------------------------------------------------------------
>
>                 Key: AXIS2-4361
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4361
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>    Affects Versions: 1.3
>         Environment: WIndows XP SP3, 
>            Reporter: Asit Jaiswal
>         Attachments: Addition.java, services.xml, Support.java
>
>   Original Estimate: 96h
>  Remaining Estimate: 96h
>
> Using Axis2 1.3
> Java 6
> I have created one web service which adds two number but the session is not working when
using serlvet as client
> : here is the listing for web service:
> public class Addition{
> public int add(int n1 ,int n2){
> MessageContext mctx = MessageContext.getCurrentMessageContext();
> ServiceContext serviceContext = mctx.getServiceContext();
> if((Integer) serviceContext.getProperty("VALUE") == null){
> serviceContext.setProperty("VALUE", new Integer(n1+n2));
> return((Integer) serviceContext.getProperty("VALUE")).intValue();
> }
> else{
> serviceContext.setProperty("VALUE1", (Integer) serviceContext.getProperty("VALUE"));
> int result = ((Integer) serviceContext.getProperty("VALUE1")).intValue()+((Integer) serviceContext.
getProperty("VALUE")).intValue();
> serviceContext.setProperty("VALUE", (Integer) result);
> return result;
> }
> }
> }
> I modified the services.xml as :
> <service name="Addition" scope="transportsession" >
> ......
> ..... no modification here
> .....
> </service>
> For client Side I created a Servlet using AXIOM here is the listing
> Options opts = new Options();
> opts.setTo(new EndpointReference("http://localhost:8080/Calculator/services/Addition"));
> opts.setAction("urn:add");
> opts.setManageSession(true);
> sc.setOptions(opts);
> If I invoke the web service using below url transport session is working fine
> http://localhost:8080/Calculator/services/Addition/add?n1=5&n2=9
> but using the AXIOM in servlet its not working (transport session)
> Note:(if I Put scope="application" then it working with Servlet)
> Please help me............
> Thanks in Advance

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message