我多年来一直在使用带有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中执行此操作?我尝试的所有东西似乎都没有用。
答案 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);