Hi, thanks for your reply.
I have enabled the session inside the WebServiceExporter, and I need to use CurrentUser object in DemoWebService which is a general class, so I added a property CurrentUser as the following:
Code:
public class DemoWebService : IDemoWebService
{
private IDemoService demoService;
public IDemoService DemoService
{
get
{
return demoService;
}
set
{
demoService = value;
}
}
private User currentUser;
public User CurrentUser
{
get { return currentUser; }
set { currentUser = value; }
}
public Demo GetDemoById(int demo_id)
{
Demo demo = new Demo();
if(CurrentUser == null){
demo.UserName = "New user";
CurrentUser = new User(); // generate a new User object
CurrentUser.UserLoginName = "new user in spring";
}else{
demo.UserName = CurrentUser.UserLoginName;
}
return demo;
}
}
Here's my configuration, I added a CurrentUser reference in DemoWebService. I made it more clear to read.
Code:
<object id="CurrentUser" type="com.newgarman.domain.User, Newgarman.Service" scope="session">
</object>
<object id="demoWebTarget" type="com.newgarman.webservice.impl.DemoWebService ">
<property name="DemoService">
<ref object="demoService"/>
</property>
<property name="CurrentUser">
<ref object="CurrentUser"/>
</property>
</object>
<object id="demoWebService" type="Spring.Web.Services.WebServiceExporter, Spring.Web">
<property name="TargetName" value="demoWebTarget" />
<property name="Namespace" value="http://webservice/WebServices" />
<property name="Description" value="Spring Demo Web Services" />
<property name="MemberAttributes">
<dictionary>
<entry key="*">
<object type="System.Web.Services.WebMethodAttribute, System.Web.Services">
<property name="EnableSession" value="True"/>
</object>
</entry>
</dictionary>
</property>
</object>
Now it throws exception: 'session'-scoped objects require SessionState to be enabled.
And after I removed the CurrentUser reference in DemoWebService, there's no error, so I think maybe something need to do with the DemoWebService. But I didn't get any idea.
Then the question is how can I use the CurrentUser in my DemoWebService? thanks again.