2014-11-16 7 views
0

Я использую EJB с сервлетами в течение многих лет, но мне нужно использовать их на странице JSP, и я боюсь. Я использую Glassfish 4.1инъекции EJB в JSP

У меня есть лица что-то вроде этого:

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

Почему вы хотите это сделать? Это большой дизайнерский запах, который ставит бизнес-логику на JSP. – t0mppa

ответ

0

Плохая идея от точки дизайна, но в любом случае вы можете получить ее через блокировку в jndi.

Как:

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

Благодарим вас за это, но каков правильный способ взаимодействия с бизнес-логикой. Если я хочу создать адрес, например, у бизнес-логики есть методы для этого, и у JSP есть интерфейс для ввода деталей. Как мне получить друг друга? через сервлеты, возможно? –

+0

Для этого несколько способов зависит от вашей архитектуры в J2EE, прежде всего, это будет добавить объект Address, который был заполнен на стороне интерфейса, к запросу, который будет обрабатываться через Servlet, в который будет введена ваша служба. И вы можете написать Rest Service для его обработки. – Maksym

Смежные вопросы