1 Reply Latest reply on Oct 24, 2007 3:50 PM by Pete Muir

    Weblogic 10 ClassDefNotFoundException

    Andrew Patterson Newbie

      I'm trying to deploy a full EJB 3.0 application on Weblogic 10 and I am running into an issue when trying to create session beans. When the javassist code attempts to create the bean proxy I get the following error (the cause) generated:

      java.lang.NoClassDefFoundError: org/javassist/tmp/java/lang/Object_$$_javassist_3 : au/gov/acma/dap/equipment/action/MeasurementEquipmentAction
      at java.lang.ClassLoader.defineClass(Ljava.lang.String;[BIILjava.security.ProtectionDomain;)Ljava.lang.Class;(Unknown Source)
      at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
      at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
      at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:174)
      at org.jboss.seam.util.ProxyFactory.createClass(ProxyFactory.java:186)
      at org.jboss.seam.Component.createProxyFactory(Component.java:2261)
      at org.jboss.seam.Component.getProxyFactory(Component.java:1376)
      at org.jboss.seam.Component.wrap(Component.java:1367)
      at org.jboss.seam.Component.instantiateSessionBean(Component.java:1289)
      at org.jboss.seam.Component.instantiate(Component.java:1274)
      at org.jboss.seam.Component.newInstance(Component.java:1967)
      at org.jboss.seam.Component.getInstance(Component.java:1874)
      at org.jboss.seam.Component.getInstance(Component.java:1841)
      at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
      at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
      at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166)
      at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53)
      at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
      at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
      at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:68)
      at com.sun.el.parser.AstValue.getTarget(AstValue.java:63)
      at com.sun.el.parser.AstValue.invoke(AstValue.java:153)
      at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
      at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
      at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
      at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
      at javax.faces.component.UICommand.broadcast(UICommand.java:383)

      I'm not sure if it is related but I had to change my session bean interfaces to @Remote instead of @Local to overcome an issue related to the way in which Weblogic 10 binds local interfaces (ie I can't actually find what it binds them to :)).

      The classloader that is being used as an argument to the Method.invoke call (around the defineClass method) is the Weblogic classloader.

      This issue is really holding me up at the moment, it is frustrating as I have the application deployed and am close to having it run... maybe...). I have no hard clues at the moment as to the cause.