2015-02-26 2 views
1

Как я могу вставлять EJB в XmlAdapters?Использование EJB в XmlAdapters

Идея заключается в том, что я хочу получить список идентификаторов API-интерфейса rest и преобразовать этот массив идентификаторов в список объектов для объекта Entity. Например:

public class Post { 
    List<Category> categories; 
    ... 
} 

public class AdaptedPost { 
    List<Long> categories; 
    ... 
} 

public class PostAdapter extends XmlAdapter<AdaptedPost, Post> { 

    @EJB 
    CategoryFacade categoryFacade; 

    @Override 
    public Post unmarshal(final AdaptedPost adaptedPost) throws Exception { 
     // Use facade class to retrieve category object from ID 
    } 
    ...  
} 

ответ

2

Там нет поддержки определяется для инъекций в javax.xml.bind.annotation.adapters.XmlAdapter объектов.

Вам нужно будет приобрести EJB старомодным способом, используя поиск JNDI.

+0

Это достаточно быстро? Есть ли другое решение в моем случае? Я имею в виду, это хорошая идея вообще? – user1079877

+1

Сделайте поиск один раз и кешируйте его где-нибудь. В качестве альтернативы, если код был вызван из какого-либо другого EJB, добавьте его в этот файл и запишите его в ThreadLocal (с обычными предостережениями относительно правильной очистки) –