You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Stefano Tranquillini <st...@gmail.com> on 2009/04/20 18:31:01 UTC
Stateful ejb lose the information
Hi all.
i've a problem with ejb stateful bean.
in my stateful ejb i've this method
@Stateful
public class ShopCartBean implements ShopCartLocal {
@EJB
private MGMTLocal man;
private Customer customer;
public boolean *enableShopping*(String user, String password) {
customer = man.loginUser(user, password);
if (customer != null) {
return true;
} else {
return false;
}
}
public boolean *addItem*(int idItem, int quan) {
if (customer != null) {
......
} else {
System.out.println("no customer");
return false;
}
}
}
i've an action that perform the login and has to set customer corrisponding
class
@InjectEJB(name = "WAP-Shop/ShopCartBean")
private ShopCartLocal scb;
....
if (scb.*enableShopping*(username_login, password_login)) {
return SUCCESS;
} else {
return ERROR;
}
this action return success OK.
now, i call another class
@InjectEJB(name = "WAP-Shop/ShopCartBean")
private ShopCartLocal scb;
if (scb.*addItem*(idItemtoAdd,quantity)) {
return SUCCESS;
} else {
return ERROR;
}
this action return ALWAYS ERROR: Customer is always set to NULL.
stateful usaually doesn't store information?
or i miss something?
--
Stefano
Re: Stateful ejb lose the information
Posted by Stefano Tranquillini <st...@gmail.com>.
i've done some trial:.
an action
@InjectEJB(name = "WAP-Shop/TestDeiBeanBean")
TestDeiBeanLocal tdb;
public String execute() throws Exception {
// scb = lookupShopCartBean();
System.out.println("value --> " + tdb.value());
System.out.println("setTrue " + tdb.setTrue());
...}
the ejb
private boolean b = false;
public boolean value() {
return b;
}
public boolean setTrue() {
b = true;
return b;
}
public boolean setFalse() {
b = false;
return b;
}
the output is:
21:27:46,062 INFO [STDOUT] value --> false
21:27:46,078 INFO [STDOUT] setTrue true
--lose data--
21:27:47,578 INFO [STDOUT] value --> false
21:27:47,578 INFO [STDOUT] setTrue true
--mantain data--
21:27:48,265 INFO [STDOUT] value --> true
21:27:48,265 INFO [STDOUT] setTrue true
--lose data--
21:27:48,671 INFO [STDOUT] value --> false
21:27:48,671 INFO [STDOUT] setTrue true
21:27:49,453 INFO [STDOUT] value --> false
21:27:49,453 INFO [STDOUT] setTrue true
--manatain data
21:27:49,875 INFO [STDOUT] value --> true
21:27:49,875 INFO [STDOUT] setTrue true
21:27:50,328 INFO [STDOUT] value --> true
21:27:50,328 INFO [STDOUT] setTrue true
21:27:50,734 INFO [STDOUT] value --> true
21:27:50,734 INFO [STDOUT] setTrue true
21:27:51,046 INFO [STDOUT] value --> true
21:27:51,046 INFO [STDOUT] setTrue true
21:27:51,671 INFO [STDOUT] value --> true
21:27:51,671 INFO [STDOUT] setTrue true
21:27:52,265 INFO [STDOUT] value --> true
21:27:52,265 INFO [STDOUT] setTrue true
what appends?
On Mon, Apr 20, 2009 at 18:31, Stefano Tranquillini <
stefano.tranquillini@gmail.com> wrote:
> Hi all.
>
> i've a problem with ejb stateful bean.
>
> in my stateful ejb i've this method
>
> @Stateful
> public class ShopCartBean implements ShopCartLocal {
>
> @EJB
> private MGMTLocal man;
>
>
>
>
> private Customer customer;
>
> public boolean *enableShopping*(String user, String password) {
> customer = man.loginUser(user, password);
> if (customer != null) {
> return true;
> } else {
> return false;
> }
> }
>
> public boolean *addItem*(int idItem, int quan) {
> if (customer != null) {
> ......
> } else {
> System.out.println("no customer");
> return false;
> }
> }
>
> }
>
> i've an action that perform the login and has to set customer corrisponding
> class
>
> @InjectEJB(name = "WAP-Shop/ShopCartBean")
> private ShopCartLocal scb;
>
> ....
>
>
> if (scb.*enableShopping*(username_login, password_login)) {
> return SUCCESS;
> } else {
> return ERROR;
> }
>
> this action return success OK.
>
> now, i call another class
>
> @InjectEJB(name = "WAP-Shop/ShopCartBean")
> private ShopCartLocal scb;
>
> if (scb.*addItem*(idItemtoAdd,quantity)) {
>
> return SUCCESS;
> } else {
> return ERROR;
> }
>
> this action return ALWAYS ERROR: Customer is always set to NULL.
> stateful usaually doesn't store information?
> or i miss something?
> --
> Stefano
>
>
--
Stefano