tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Funk <mafulaf...@gmail.com>
Subject Re: What is the meaning of: javax.ejb.Stateless
Date Thu, 06 Mar 2014 18:54:52 GMT
Hi,

such a compact statement, but still a lot to wrap my head around.

My prejudgement was so solid that I didn't bother to search for any explanations on the net
and good explanations are not that far away:
http://en.wikipedia.org/wiki/Enterprise_JavaBeans#Stateless_Session_Beans

thnx,

Martin

Am 06.03.2014 um 17:47 schrieb Romain Manni-Bucau <rmannibucau@gmail.com>:

> Hi
> 
> stateless means "don"t expect the same instance to be used twice" (if
> you store a value and call twice your ejb the second time the value
> can be different).
> 
> However it is thread safe (pooled) and it allows you to handle
> transaction and security as any ejb
> Romain Manni-Bucau
> Twitter: @rmannibucau
> Blog: http://rmannibucau.wordpress.com/
> LinkedIn: http://fr.linkedin.com/in/rmannibucau
> Github: https://github.com/rmannibucau
> 
> 
> 
> 2014-03-06 17:42 GMT+01:00 Martin Funk <mafulafunk@gmail.com>:
>> Hi again,
>> 
>> still at a very early stage of conquering the domain of TomEE+.
>> 
>> I have a question on javax.ejb.Stateless. In the specs I read that in the area of
SOAP based web services, which are implemented by an EJB component the class implementing
the endpoint must be annotated @Stateless or @Singleton.
>> 
>> I got curious on what would happen if the class was annotated @Statless even though
the instances were not 'Stateless'
>> Exceptions were expected, but non were thrown.
>> 
>> Code Service:
>> package de.jaxws.soap.ejb;
>> 
>> import javax.ejb.Stateless;
>> import javax.jws.WebService;
>> 
>> @WebService
>> @Stateless
>> public class SoapEjb {
>> 
>>        private int i;
>> 
>>        public String helloEJB() {
>>                return "helloEJB again :" + i++;
>>        }
>> }
>> 
>> Code Client (supporting Classes were generated using wsimport):
>> package de.jaxws.soap.client;
>> 
>> 
>> import de.jaxws.soap.client.SoapEjb;
>> import de.jaxws.soap.client.SoapEjbService;
>> 
>> public class Client {
>> 
>>        public static void main(String[] args) {
>> 
>>                SoapEjbService service = new SoapEjbService();
>>                SoapEjb port = service.getPort(SoapEjb.class);
>>                for (int i = 0; i < 10; i++) {
>>                        System.out.println(port.helloEJB());
>>                }
>>        }
>> 
>> }
>> 
>> Output of Client:
>> helloEJB again :0
>> helloEJB again :1
>> helloEJB again :2
>> helloEJB again :3
>> helloEJB again :4
>> helloEJB again :5
>> helloEJB again :6
>> helloEJB again :7
>> helloEJB again :8
>> helloEJB again :9
>> 
>> Could someone please give me a hint on what I'm misunderstanding?
>> 
>> Cheers,
>> 
>> Martin


Mime
View raw message