|
|
|
NoClassDefFound при разработке портлетов с EJB. Почему?
|
|||
|---|---|---|---|
|
#18+
Всем привет! Задача: есть WebSphere Portal Server. Есть Rational Application Developer 6.0.1. Нужно разработать примитивный сессионный бин, у которого есть метод getTest(), и разработать JSR-168 портлет, который дергает этот метод и отображает результат, возвращаемый методом. Код метода getTest: Код: plaintext 1. 2. Что я делаю: Регистрирую сервер: 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... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2006, 14:44 |
|
||
|
NoClassDefFound при разработке портлетов с EJB. Почему?
|
|||
|---|---|---|---|
|
#18+
в ear в META-INF\application.xml прописываются web и ejb модули там твой ejb модуль точно описан ? AS говорит и показывает какие бины увидел и поставил на вооружение можно паазырить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2006, 16:21 |
|
||
|
NoClassDefFound при разработке портлетов с EJB. Почему?
|
|||
|---|---|---|---|
|
#18+
Вот что заметил. Дело в том, что каталог 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. ppexAS говорит и показывает какие бины увидел и поставил на вооружение можно паазырить. А где это можно позырить? Если в административной консоли в списке Enterprise Applications, то там есть приложение Test5Portlet_PA_1_0_FM , но Test5EJB* нет. Еще в админконсоли для этого приложения в разделе EJB Modules пусто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2006, 17:13 |
|
||
|
NoClassDefFound при разработке портлетов с EJB. Почему?
|
|||
|---|---|---|---|
|
#18+
ASы могут придираться ко всякой фигне например к расширению ejb модуля <ejb>Test5EJBProj.jar</ejb> помоему лучше ejb а где в WS позырить не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 00:11 |
|
||
|
NoClassDefFound при разработке портлетов с EJB. Почему?
|
|||
|---|---|---|---|
|
#18+
насколько я знаю, ejb должны разворачиваться в отдельном EAR-архиве на Application Server, а портлеты в отдельном war на портальном сервере. Так вот, развернул ejb-проект на server1, а портлетный проект на WebSphere_Portal. А при открытии страницы с портлетом в лог все равно пишется: Nested Exception is javax.faces.FacesException: java.lang.NoClassDefFoundError: ejbs.Test12BeanHome Вобщем, дайте, плиз, где можно почитать о развертывании портлетов, использующих ejb, или подскажите, что я не так делаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 03:38 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33520556&tid=2150297]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 342ms |

| 0 / 0 |
