View Javadoc
1   package info.ejava.examples.ejb.basic.ejb;
2   
3   import info.ejava.examples.ejb.basic.dto.Greeting;
4   import info.ejava.examples.ejb.basic.dto.Name;
5   
6   import java.util.Date;
7   
8   import javax.annotation.PostConstruct;
9   import javax.annotation.PreDestroy;
10  import javax.ejb.Remote;
11  import javax.ejb.Stateless;
12  
13  import org.slf4j.Logger;
14  import org.slf4j.LoggerFactory;
15  
16  @Stateless
17  @Remote(GreeterRemote.class)
18  public class GreeterEJB implements Greeter {
19      private static final Logger logger = LoggerFactory.getLogger(GreeterEJB.class);
20  
21      @PostConstruct
22      public void init() {
23          logger.info("*** GreeterEJB:init({}) ***", super.hashCode());
24      }
25      @PreDestroy
26      public void destroy() {
27          logger.info("*** GreeterEJB:destroy({}) ***", super.hashCode());
28      }
29      
30      /**
31       * This method is an example of a business method that can be invoked by
32       * users of this object (if a POJO) or bean (if deployed as an EJB).
33       */
34      @Override
35      public String sayHello(String name) throws BadRequestException {
36          logger.debug("sayHello({})", name);
37  
38          if (name == null || name.isEmpty()) {
39              throw new BadRequestException(
40                      "you must have a name for me to say hello");
41          }
42          return "hello " + name;
43      }
44  
45      /**
46       * This method is an example of a business method that
47       */
48      @Override
49      public Greeting sayHello(Name name) throws BadRequestException {
50          logger.debug("sayHello({})", name);
51  
52          if (name == null) {
53              throw new BadRequestException(
54                      "you must have a name for me to say hello");
55          }
56          return new Greeting(new Date(), 
57                  "hello " + name.getFirstName() + " " + name.getLastName());
58      }
59  }