将EJB注入JSP

时间:2014-11-16 07:50:45

标签: jsp java-ee jpa

我多年来一直在使用带有servlet的EJB,但是我需要在JSP页面中使用它们而且我正在努力。我正在使用Glassfish 4.1

我有一个像这样的实体:

public class Address implements Serializable, EntityToJson {
  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;

  @Column(name="addressType")
  @Enumerated(EnumType.ORDINAL)
  private AddressType addressType;

  @Column(name="streetLineOne")
  private String streetLineOne;

  @Column(name="city")
  private String city;

  @Column(name="adState")
  private String state;

  ...

和这样的界面:

public interface AddressService {
  public Address createAddress(final JsonObject addressPayload) throws AddressException;
  ...    
}

所以在我的Servlet中我会做类似的事情:

@EJB AddressService addressService;

并像这样使用

Address address = addressService.createAddress(addressJson);

我如何在JSP中执行此操作?我尝试的所有东西似乎都没有用。

2 个答案:

答案 0 :(得分:1)

从设计角度来看这是个坏主意,但无论如何你可以通过jndi的锁定来获得它。

像:

AddressService addressService = (AddressService) new InitialContext().lookup("java:comp/env/AddressService");

答案 1 :(得分:0)

您可以通过servlet:https://github.com/readonlynetwork/sandbox/tree/master/jsp-and-ejb

request.setAttribute("ejbObj", ejbObj);     
request.getRequestDispatcher("/page.jsp").forward(request, response);