axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sudhakar reddi (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AXIS2-2176) No issue
Date Thu, 15 Feb 2007 07:51:05 GMT

     [ https://issues.apache.org/jira/browse/AXIS2-2176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sudhakar reddi updated AXIS2-2176:
----------------------------------

    Description:     (was: Hi,

I created two services and in scope "transportsession" in a same service group. One Service
I am trying to set the values in a SessionConext and trying to retrive from the other service.
This working fine with Broweres.

My Test Approach:

I took the Nightly build from 14.02.2007 deployed axis2.war and  TestSessionService.aar (which
I developed ). In the First Service TestLoginService I have a method called login where I
am setting a value.
and in the second service I have a method called getUser where I am trying to retrieve a value.


if I test in browser as below
http://localhost:8080/axis2/services/TestLoginService/login
http://localhost:8080/axis2/services/TestService/getUser

it is working fine. but in RPC Client it is not working. The session  is maintaining  within
the  bean is working fine in RPCclient. i.e If I am setting a value in one service call and
If I trying to retrieve tha value in another call, it is working fine. For testing that I
am a having a setUser and getUser in the TestService.

My service.xml
---------------------------------------------------------------------------------------------------------------------------------------------
<serviceGroup>

<service name="TestLoginService" scope="transportsession">
    <description>
        Service For Logging and maintaing the session
    </description>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
                         class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
                         class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </messageReceivers>
    <parameter name="ServiceClass" >com.test.service.TestLoginService</parameter>

</service>
<service name="TestService" scope="transportsession">
    <description>
        Service For Logging and maintaing the session
    </description>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
                         class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
                         class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </messageReceivers>
    <parameter name="ServiceClass" >com.test.service.TestService</parameter>

</service>
</serviceGroup>
---------------------------------------------------------------------------------------------------------------------------------------
TestLoginService.java

package com.test.service;

import  org.apache.axis2.context.ServiceContext;
import  org.apache.axis2.context.MessageContext;
import  org.apache.axis2.context.SessionContext;


public class TestLoginService
{
    public void init(ServiceContext serviceContext) {
        System.out.println("init method invoked");
    }
    public void destroy(ServiceContext serviceContext) {
        System.out.println("destroy method invoked");
    }
    public void login()
    {
        getSessionContext().setProperty("USER_ID", "Sudhaka");
        System.out.println("User Login Method :"+getSessionContext().getCookieID());
        //return true;
    }

    private SessionContext getSessionContext() {
       MessageContext messageContext = MessageContext.getCurrentMessageContext();
       SessionContext sessionContext = messageContext.getSessionContext();
       return sessionContext;
    }

}
---------------------------------------------------------------------------------------------------------------------
TestService.java

package com.test.service;

import  org.apache.axis2.context.ServiceContext;
import  org.apache.axis2.context.MessageContext;
import  org.apache.axis2.context.SessionContext;


public class TestService
{
	private static String PROP_COUNTER = "property.counter";

    public void destroy(ServiceContext serviceContext) {
        System.out.println("TestService destroy method invoked");
    }
    public String getUser()
    {
        System.out.println("getUser Login Cookie:"+getSessionContext().getCookieID());
        String userid = (String)getSessionContext().getProperty("USER_ID");
        System.out.println("UserId"+userid);
        return userid;

    }

    public int plusone() {

			printMessage("plusone()", "begin");

			SessionContext sessionContext = getSessionContext();

			int counter = 1 + Integer.parseInt((String)sessionContext.getProperty(PROP_COUNTER).toString());

			sessionContext.setProperty(PROP_COUNTER, new Integer(counter));


			printMessage("plusone()", "sessionId="+sessionContext.getCookieID()+", counter="+counter);

			return counter;
	}

    private SessionContext getSessionContext() {
       MessageContext messageContext = MessageContext.getCurrentMessageContext();
       SessionContext sessionContext = messageContext.getSessionContext();
       return sessionContext;
    }

    private void printMessage(String method, String message) {
			System.out.println(method+"::"+message);
	}
public void init(ServiceContext serviceContext) {
		printMessage("init()", "begin");

		SessionContext sessionContext = getSessionContext();
		sessionContext.setProperty(PROP_COUNTER, new Integer(1));

		printMessage("init()", "sessionContext="+sessionContext.getCookieID()+", reset counter to
1 in session");
	}
	public void setUser(String user )
	{
		System.out.println("Set method:"+user);
		getSessionContext().setProperty("USER_ID", "Test123");
        System.out.println("Login Cookie:"+getSessionContext().getCookieID());
	}
}
----------------------------------------------------------------------------------------------------------------
TestRpcClient.java

RPCServiceClient serviceClient = new RPCServiceClient();

        Options options = serviceClient.getOptions();

        EndpointReference targetEPRLogin = new EndpointReference("http://127.0.0.1:8080/axis2/services/TestLoginService");
        options.setTo(targetEPRLogin);
        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
        options.setManageSession(true);

		options.setAction("urn:login");
		serviceClient.setOptions(options);
        QName opAddEntry = new QName("http://service.test.com/xsd", "login");

        Object[] opAddEntryArgs = new Object[] {  };
        serviceClient.invokeRobust(opAddEntry, opAddEntryArgs);

		//Calling the session Value in Anothe Bean

		EndpointReference targetEPRTest = new EndpointReference("http://127.0.0.1:8080/axis2/services/TestService");
		options = serviceClient.getOptions();
		 options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
        options.setManageSession(true);
    	options.setTo(targetEPRTest);
    	options.setAction("urn:getUser");
        QName opFindEntry = new QName("http://service.test.com/xsd", "getUser");
        Object[] opFindEntryArgs = new Object[] {  };
        Class[] returnTypes = new Class[] { String.class };
        Object[] response = serviceClient.invokeBlocking(opFindEntry,
                opFindEntryArgs, returnTypes);
        String result = (String) response[0];

        System.out.println("Bug result " + result);


		//Setting User in the same Bean as a session value
        options.setAction("urn:setUser");
        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
        options.setManageSession(true);
        opFindEntry = new QName("http://service.test.com/xsd", "setUser");
        opFindEntryArgs = new Object[] { "Test" };
		serviceClient.invokeRobust(opAddEntry, opFindEntryArgs);

		//Getting the value from the session
		options.setAction("urn:getUser");
 		options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
        options.setManageSession(true);
		opFindEntry = new QName("http://service.test.com/xsd", "getUser");
		opFindEntryArgs = new Object[] {  };
		returnTypes = new Class[] { String.class };
        response = serviceClient.invokeBlocking(opFindEntry, opFindEntryArgs, returnTypes);
        result = (String) response[0];
		System.out.println("Session Value Result:"+result);

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

Please let me know if I am doing something wrong here. The similar bug Axis2-2042 is working
fine because it is within the bean.

Regards
Sudhakar


)
        Summary: No issue  (was: TransportSession among the beans is not working RPC client
and working in Browsers)

> No issue
> --------
>
>                 Key: AXIS2-2176
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2176
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Test
>          Components: client-api
>    Affects Versions: 1.1.1
>         Environment: Tomcat 5.5 , Java 1.5 and axis2 Nightly build from 14.02.2007 operating
Windos XP Professional
>            Reporter: Sudhakar reddi
>            Priority: Minor
>             Fix For: nightly
>
>         Attachments: TestSessionService.aar
>
>


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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message