Как я могу вызвать локальный сессионный компонент внутри EAR из другого EAR, оба
развернут в том же домене Glassfish v3?
Это структура:
Glassfish v3 Domain1
EAR1
EAR1-EJB.jar
class TestSessionBean <-- @Stateless
common.jar
interface TestSessionLocal <-- @Local
EAR2
EAR2-EJB.jar
class TestSessionBeanClient <-- @Singleton, @LocalBean
common.jar
interface TestSessionLocal <-- @Local
TestSessionBean реализует TestSessionLocal, оба EAR имеют common.jar.
Мне нужно использовать TestSessionBean из TestSessionBeanClient. Я хотел бы взять
преимущество локального сессионного компонента из-за производительности.
Я знаю, что не могу использовать простой вызов @EJB в TestSessionBeanClient, поэтому я попытался
чтобы искать вот так:
InitialContext ic = new InitialContext();
TestSessionLocal tsl = ic.lookup("java:global/EAR1/EAR1-EJB/TestSessionBean!org.test.TestSessionLocal");
Это вызовет исключение ClassCastException, поскольку возвращаемый объект не будет
TestSessionLocal, но прокси-класс, такой как:
TestSessionLocal_1389930137
что для того, чтобы вызвать его методы, я должен подумать, чтобы найти его методы.
Пожалуйста, помогите.
Заранее спасибо.