将 EJB 注入 JSP 中



我已经将EJB与servlet一起使用很多年了,但是我需要在JSP页面中使用它们,而且我正在努力。我正在使用玻璃鱼 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 中执行此操作?我尝试的一切似乎都不起作用。

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

喜欢:

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

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

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

最新更新