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
32
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
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 }