powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / NoClassDefFound при разработке портлетов с EJB. Почему?
5 сообщений из 5, страница 1 из 1
NoClassDefFound при разработке портлетов с EJB. Почему?
    #33519135
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Задача: есть WebSphere Portal Server. Есть Rational Application Developer 6.0.1. Нужно разработать примитивный сессионный бин, у которого есть метод getTest(), и разработать JSR-168 портлет, который дергает этот метод и отображает результат, возвращаемый методом.

Код метода getTest:
Код: plaintext
1.
2.
 public  String getTest(){
   return  "test";
}

Что я делаю:
Регистрирую сервер: WebSphere Portal 5.1 Server Attach .

1) Создаю новый EJB Project с созданием клиентского проекта для клиентских интерфейсов. Выставляю версию EJB: 2.0, target server: WebSphere Portal 5.1 Stub. Автоматически создается EAR-приложение.
2) Создаю в этом проекте сессионный бин без состояния. Генерирую для него локальные интерфейсы (удаленные не генерирую). В этом бине создаю метод getTest и делегирую его в локальный интерфейс.
3) Создаю новый Portlet Project (JSR168), используя JSF. Помещаю его в EAR-приложение, созданное при создании EJB проекта. Выбираю на закладке Select dependent JARs for the module within the Enterprise Application project jar-файлы EJB проекта и EJB Client проекта.
4) Бросаю на форму портлета сесионный бин. Выбираю метод getTest с созданием соответствующей формы.
5) Щелкаю на созданный проект портлет, выбираю Run on Server и запускаю на ранее настроенном сервере WebSphere Portal 5.1 Server Attach .

В итоге имею в логе ошибку NoClassDefFound (стек ниже).

Что я не так делаю? Помогите пожалуйста!!


Стек:
2006.02.02 13:41:24.422 E com.ibm.wps.engine.tags.PortletRenderTag doStartTag
javax.portlet.PortletException
at org.apache.pluto.core.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:133)
at com.ibm.faces.context.PortletExternalContextImpl.dispatch(PortletExternalContextImpl.java:439)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:295)
... 168 more

Nested Exception is javax.servlet.jsp.JspException: java.lang.NoClassDefFoundError: ejbs.TestBeanLocalHome
at com.sun.faces.taglib.html_basic.OutputTextTag.doEndTag(OutputTextTag.java:177)
at org.apache.jsp._Test2PortletView._jspService(_Test2PortletView.java:233)
at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:683)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:781)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1049)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java(Compiled Code))
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:254)
at org.apache.pluto.core.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:112)
at com.ibm.faces.context.PortletExternalContextImpl.dispatch(PortletExternalContextImpl.java:439)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:295)
at com.ibm.faces.application.PortletViewHandlerImpl.renderView(PortletViewHandlerImpl.java:74)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
at com.ibm.faces.webapp.FacesGenericPortlet.doRender(FacesGenericPortlet.java:358)
at com.ibm.faces.webapp.FacesGenericPortlet.doView(FacesGenericPortlet.java:389)
at test2portlet.Test2PortletPortlet.doView(Test2PortletPortlet.java:26)
at com.ibm.faces.webapp.FacesGenericPortlet.doDispatch(FacesGenericPortlet.java:290)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:163)
at com.ibm.wps.pe.pc.std.cmpf.impl.PortletFilterChainImpl.render(PortletFilterChainImpl.java:144)
at com.ibm.wps.pe.pc.std.invoker.impl.PortletServlet.dispatch(PortletServlet.java:131)
at com.ibm.wps.pe.pc.std.invoker.impl.PortletServlet.doGet(PortletServlet.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at com.ibm.wps.pe.pc.std.cache.CacheablePortlet.service(CacheablePortlet.java:256)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

and more...
...
Рейтинг: 0 / 0
NoClassDefFound при разработке портлетов с EJB. Почему?
    #33519572
ppex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в ear в META-INF\application.xml
прописываются web и ejb модули
там твой ejb модуль точно описан ?
AS говорит и показывает какие бины
увидел и поставил на вооружение можно паазырить.
...
Рейтинг: 0 / 0
NoClassDefFound при разработке портлетов с EJB. Почему?
    #33519774
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что заметил. Дело в том, что каталог Test5Portlet_PA_1_0_FM.ear присутствует на сервере в c:\WebSphere\AppServer\config\cells\wsp-baranovsky\applications\ и c:\WebSphere\PortalServer\installedApps\ . А вот каталог EJB-проекта нигде не присутствует. Test5EJB нигде не найдено :( Он просто не задеплоился. Как его задеплоить?


ppexв ear в META-INF\application.xml
прописываются web и ejb модули
там твой ejb модуль точно описан ?
Содержимое application.xml:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application  PUBLIC  "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
<application id="Application_ID">
	<display-name>Test5EAR</display-name>
	<module id="EjbModule_1138888076478">
		<ejb>Test5EJBProj.jar</ejb>
	</module>
	<module id="WebModule_1138888199985">
		<web>
			<web-uri>Test5PortletProj.war</web-uri>
			<context-root>.Test5PortletProj</context-root>
		</web>
	</module>
</application>


ppexAS говорит и показывает какие бины
увидел и поставил на вооружение можно паазырить.
А где это можно позырить? Если в административной консоли в списке Enterprise Applications, то там есть приложение Test5Portlet_PA_1_0_FM , но Test5EJB* нет. Еще в админконсоли для этого приложения в разделе EJB Modules пусто.
...
Рейтинг: 0 / 0
NoClassDefFound при разработке портлетов с EJB. Почему?
    #33520556
ppex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASы могут придираться ко всякой фигне
например к расширению ejb модуля
<ejb>Test5EJBProj.jar</ejb> помоему лучше ejb

а где в WS позырить не знаю
...
Рейтинг: 0 / 0
NoClassDefFound при разработке портлетов с EJB. Почему?
    #33520662
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я знаю, ejb должны разворачиваться в отдельном EAR-архиве на Application Server, а портлеты в отдельном war на портальном сервере. Так вот, развернул ejb-проект на server1, а портлетный проект на WebSphere_Portal. А при открытии страницы с портлетом в лог все равно пишется:
Nested Exception is javax.faces.FacesException: java.lang.NoClassDefFoundError: ejbs.Test12BeanHome

Вобщем, дайте, плиз, где можно почитать о развертывании портлетов, использующих ejb, или подскажите, что я не так делаю.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / NoClassDefFound при разработке портлетов с EJB. Почему?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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