[jboss-user] [JBoss AOP] - java.lang.NoClassDefFoundError. Cant find an interface at lo

elysch do-not-reply at jboss.com
Mon May 12 21:18:17 EDT 2008


Hello again.

I'm still very new to all this. I haven't been able to get my application working for a long time now. I'm sure I'm doing something wrong.

I hope I'm not asking a very dumb question, but I haven't been able to find a solution yet.

I'm getting the following error in the jboss console at loadtime:
11:30:16,578 ERROR [[action]] Servlet.service() para servlet action lanzó excepción
  | java.lang.NoClassDefFoundError: com/mitalteli/bolsaDeTrabajo/useCaseSlices/specific/consultarVacantes/IAspectoServicioConsultarVacantesBase
  |         at com.mitalteli.bolsaDeTrabajo.web.consultarVacantes.ControladorConsultarVacantesImpl.populateConsultarVacantesScreen(ControladorConsultarVac
  | antesImpl.java:71)
  |         at com.mitalteli.bolsaDeTrabajo.web.consultarVacantes.ConsultarVacantes._poblarPantallaConsultarVacantes(ConsultarVacantes.java:72)
  |         at com.mitalteli.bolsaDeTrabajo.web.consultarVacantes.ConsultarVacantes.execute(ConsultarVacantes.java:19)
  |         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
  |         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
  |         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
  |         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
  |         at org.andromda.presentation.bpm4struts.ActionServlet.doGet(ActionServlet.java:39)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
  |         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  |         at java.lang.Thread.run(Thread.java:619)

Maybe it's just a matter of a classpath or something like that.

The ear contains: 

bolsaDeTrabajo-1.0-SNAPSHOT.ear
  | |---\META-INF\jboss-app.xml
  | |
  | |---\bolsaDeTrabajo-web-1.0-SNAPSHOT.war
  | |
  |     |---\WEB-INF\classes\com\mitalteli\bolsaDeTrabajo\web\consultarVacantes\
  |             ControladorConsultarVacantesImpl.class
  | |
  | |---\bolsaDeTrabajo-aop-1.0-SNAPSHOT.aop
  |     |---\com\mitalteli\bolsaDeTrabajo\useCaseSlices\specific\consultarVacantes\
  |             IAspectoServicioConsultarVacantesBase.class


As you can see, it is there, but in a different "sub-package".

ControladorConsultarVacantesImpl contains at line 72 (inside the populateConsultarVacantesScreen method):
...
  |         EmpresaVO[] empresas = ((com.mitalteli.bolsaDeTrabajo.useCaseSlices.specific.consultarVacantes.IAspectoServicioConsultarVacantesBase) getServicioConsultarVacantes()).getAllEmpresas();
  | ...

I had to do that, because the original ServicioConsultarVacantesBase class didn't have a getAllEmpresas() and it's added with an introduction-mixin like this:


The jboss-app.xml contains:
   <!-- **************************************************************************** -->
  |    <!-- INICIO: com.mitalteli.bolsaDeTrabajo.service.ServicioConsultarVacantesBase -->
  | 
  |    <introduction class="com.mitalteli.bolsaDeTrabajo.service.ServicioConsultarVacantesBase">
  |       <mixin>
  |          <interfaces>
  | 	       com.mitalteli.bolsaDeTrabajo.useCaseSlices.specific.consultarVacantes.IAspectoServicioConsultarVacantesBase
  |          </interfaces>
  |          <class>com.mitalteli.bolsaDeTrabajo.useCaseSlices.specific.consultarVacantes.MixinAspectoServicioConsultarVacantesBase</class>
  |          <construction>new com.mitalteli.bolsaDeTrabajo.useCaseSlices.specific.consultarVacantes.MixinAspectoServicioConsultarVacantesBase(this)</construction>
  |       </mixin>
  |    </introduction>
  | 
  |    <!-- FIN: com.mitalteli.bolsaDeTrabajo.service.ServicioConsultarVacantesBase -->


well... I hope it's a simple rookie mistake.

I don't want to fill up this message with thing's I don't know that will help. Feel free to ask me for any thing else if you think it's necessary. I could also upload the source code and the ear file to my site if anybody need's it.


The ear file has that structure, because it comes from an AndroMDA project, and I'm adding a bunch of functionality with AOP. Almost every thing related to my AOP code is inside the bolsaDeTrabajo-aop-1.0-SNAPSHOT.aop sub-package. I mean the DataAccessObject modifications, and the control/business layer modifications. I decided to leave the presentation layer almost without aspects because of the complexity of ti, that's why the ControladorConsultarVacantesImpl class has AOP related coding, and it's outside the AOP sub-package.


Thank you all, in advace.

Ely.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150215#4150215

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4150215




More information about the jboss-user mailing list