[ https://issues.apache.org/jira/browse/AXIS2-4361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12723446#action_12723446 ]
Asit Jaiswal commented on AXIS2-4361: ------------------------------------- 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.