Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при look up ejb на WebSphere / 11 сообщений из 11, страница 1 из 1
03.03.2013, 23:14:48
    #38172744
lukdiman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
Пытаюсь запустить тестовое приложение на WebSphere, но получаю ошибку. Код сервлета, ejb и дескрипторов привожу ниже.

Сам текст ошибки: Error 500: javax.servlet.ServletException: com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred while the JNDI NamingManager was processing a javax.naming.Reference object. [Root exception is com.ibm.ws.naming.util.InvalidObjectException: Some object reference in the name "ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome" relative to the context "Diman-St-PCNode01Cell/nodes/Diman-St-PCNode01/servers/server1" is invalid. Some possible causes include a context binding in the name which refers to a destroyed context, or an object binding which contains an invalid EJBHome reference. [Root exception is org.omg.CORBA.INV_OBJREF: Could not resolve IOR string. vmcid: 0x0 minor code: 0 completed: No]]

Из SystemOut.log: Caused by: java.lang.ClassNotFoundException: ru.lukdiman.ejb.core.jmsmessage.EJSRemoteStatelessJMSMessage_c514a3a5

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
public class SendJMSMessageServlet extends HttpServlet {
    private static final String MESSAGE_PARAMETER_NAME = "message";

    private JMSMessage jmsMessage = null;

    @Override
    public void init() throws ServletException {
        super.init();

        try {
            Context ctx = new InitialContext(env);
            Object objHome = ctx.lookup("java:comp/env/ejb/JMSMessage");
            JMSMessageHome jmsMessageHome = (JMSMessageHome) PortableRemoteObject.narrow(objHome, JMSMessageHome.class);
            jmsMessage = jmsMessageHome.create();
        } catch (Exception e) {
            throw new ServletException(e);
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/sendMessage.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String message = request.getParameter(MESSAGE_PARAMETER_NAME);
        request.setAttribute(MESSAGE_PARAMETER_NAME, message);

        request.getRequestDispatcher("/viewMessage.jsp").forward(request, response);
    }
}



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <servlet>
      <servlet-name>SendJMSMessage</servlet-name>
      <servlet-class>ru.lukdiman.ejb.web.servlet.SendJMSMessageServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>SendJMSMessage</servlet-name>
      <url-pattern>/sendMessage</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <ejb-ref id="EjbRef_1252108343393">
      <ejb-ref-name>ejb/JMSMessage</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      <home>ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome</home>
      <remote>ru.lukdiman.ejb.core.jmsmessage.JMSMessage</remote>
      <ejb-link>ejb-core.jar#JMSMessage</ejb-link>
    </ejb-ref>

</web-app>



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar id="ejb-jar_ID" version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
    <enterprise-beans>
        <session id="JMSMessage">
            <ejb-name>JMSMessage</ejb-name>
            <home>ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome</home>
            <remote>ru.lukdiman.ejb.core.jmsmessage.JMSMessage</remote>
            <ejb-class>ru.lukdiman.ejb.core.jmsmessage.JMSMessageBean</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Container</transaction-type>
        </session>
    </enterprise-beans>
</ejb-jar>



Код: xml
1.
2.
3.
4.
5.
6.
7.
<?xml version="1.0" encoding="UTF-8"?>
<ejbbnd:EJBJarBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ejb="ejb.xmi" xmlns:ejbbnd="ejbbnd.xmi" xmi:id="EjbJarBinding_1251662932984">
	<ejbJar href="META-INF/ejb-jar.xml#ejb-jar_ID"/>
	<ejbBindings xmi:id="EnterpriseBeanBinding_1251662932984" jndiName="ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome">
		<enterpriseBean xmi:type="ejb:Session" href="META-INF/ejb-jar.xml#JMSMessage"/>
	</ejbBindings>
</ejbbnd:EJBJarBinding>



Код: xml
1.
2.
3.
4.
5.
6.
7.
<?xml version="1.0" encoding="UTF-8"?>
<webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_1251663066218" virtualHostName="default_host">
	<webapp href="WEB-INF/web.xml#WebApp_ID"/>
	<ejbRefBindings xmi:id="EjbRefBinding_1252114740645" jndiName="ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome">
		<bindingEjbRef href="WEB-INF/web.xml#EjbRef_1252108343393"/>
	</ejbRefBindings>
</webappbnd:WebAppBinding>
...
Рейтинг: 0 / 0
03.03.2013, 23:16:12
    #38172745
lukdiman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
Совсем забыл WebSphere 8.5
...
Рейтинг: 0 / 0
05.03.2013, 14:14:20
    #38174612
ponomarevvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
1. ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome, указанный в ibm-web-bnd.xmi - это точно правильное имя? Если посмотреть лог WebSphere, то при старте приложения обычно пишутся такие строки, указывающие на то, что биндинг прошёл успешно:
Код: plaintext
1.
[3/4/13 8:03:47:415 EST] 00000074 EJBContainerI I   CNTR0167I: The server is binding the com.lombardisoftware.server.ejb.tracking.RepresentationManagerServicesHome interface of the RepresentationManagerServices enterprise bean in the twperfsvr-ejb.jar module of the IBM_BPM_PerformanceDW_bpsNode01_server1 application.  The binding location is: ejb/RepresentationManagerServices
См. текст, выделенный синим и зелёным.
Что там написано насчёт твоего JMSHome?

2. Как насчёт привести полный стек-трейс?
...
Рейтинг: 0 / 0
05.03.2013, 21:56:35
    #38175249
lukdiman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
ponomarevvb, спасибо что откликнулись

Вывод из лога: The server is binding the ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome interface of the JMSMessage enterprise bean in the ejb-core.jar module of the ejb-app application. The binding location is: java:global/JMS Test1/ejb-core/JMSMessage!ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome

Как исходя из этих данных можно сформировать конфиги мои?
...
Рейтинг: 0 / 0
06.03.2013, 00:07:15
    #38175324
lukdiman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
Что надо будет прописать в ejb-bnd и web-bnd и по какому имени лукапить?
...
Рейтинг: 0 / 0
06.03.2013, 17:03:49
    #38176345
ponomarevvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
lukdiman,

В ibm-web-bnd.xmi тогда надо jndiName указать "java:global/JMS Test1/ejb-core/JMSMessage!ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome"
Код, по идее, менять не надо.
...
Рейтинг: 0 / 0
06.03.2013, 17:08:02
    #38176362
ponomarevvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
ponomarevvblukdiman,

В ibm-web-bnd.xmi тогда надо jndiName указать "java:global/JMS Test1/ejb-core/JMSMessage!ru.lukdiman.ejb.core.jmsmessage.JMSMessageHome"
Код, по идее, менять не надо.

Хотя имя, конечно, - это какой-то треш. Больше в логе нет ничего? Это единственное имя, по которому прошёл биндинг для JMSMessageHome?
...
Рейтинг: 0 / 0
07.03.2013, 07:14:48
    #38176850
lukdiman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
А зачем тогда писать jndiName в ejb-bnd?
...
Рейтинг: 0 / 0
08.03.2013, 09:28:37
    #38177975
lukdiman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
В общем я поменял web-bnd, но ошибка осталась. Нашел еще в логах, что сфера байндит помимо этого дикого jndi имени еще и на тот что написать в ejb-bnd. Т.е. получается то что я писал раньше в web-bnd является верным. Вопрос правда остался почему не лукапится? Бред какой-то. Может есть какие-то настройки? Может запрет где-то стоит на лукап remote бинов?
...
Рейтинг: 0 / 0
08.03.2013, 09:41:08
    #38177976
lukdiman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
Может у меня ejb-link не верный в web-xml?

У меня ejb часть и web часть лежат в jar и war соответственно. Может он не находит мой ejb-core.jar где лежат все мои Home, Remote и SessionBean?
...
Рейтинг: 0 / 0
08.03.2013, 09:51:20
    #38177983
lukdiman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при look up ejb на WebSphere
Или мне вообще надо использовать локальные интерфейсы для бина? если я использую на сфере все. у меня нет удаленных клиентов и rmi тут не нужен. Или между web сервером и app сервером тоже по rmi общаются?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при look up ejb на WebSphere / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]