Всякий раз, когда я пытаюсь получить доступ к EJB 3 Stateful session bean, развернутому на сервере приложений JBoss 4.2.2 с помощью веб-клиента (на сервере JBoss), такого как servlet / jsp, я получаю следующее исключение
java.lang.ClassCastException: $ Proxy123
Если я использую приложение-клиент, тот же код работает без каких-либо исключений.
Или, если я изменю bean-компонент на @Stateless, даже веб-клиент работает нормально
Если я разверну свой .war на контейнере Tomcat внешне, веб-клиент снова будет работать и для bean-компонентов с состоянием.
Вкратце: EJB 3 с состоянием EJB 3, развернутый на JBoss 4.2 и доступный через веб-клиент, развернутый на JBoss, вызывает classcastexception
Это мой код на стороне клиента, написанный в сервлете
Properties properties = new Properties ();
properties.put (Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
properties.put (Context.PROVIDER_URL, "jnp: // localhost: 1099");
Context c = new InitialContext(properties);
InvokePOJORemote ref = (InvokePOJORemote) c.lookup("InvokePOJOBean/remote");
out.println("<h1>Servlet ejb ref " + ref + "</h1>");
boolean sts = ref.addEmployee("Mad", (short) 30, new java.math.BigDecimal(12000));
Это создает исключение ClasscastException в операторе поиска во время приведения. Не знаю, что не так! Просьба помочь.