Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-2421

weld-osgi-bundle has missing export for org.jboss.weld.proxy

    XMLWordPrintable

Details

    Description

      The MANIFEST.MF in weld-osgi-bundle.jar (org.jboss.weld:weld-osgi-bundle:3.0.1.Final) doesn't export the org.jboss.weld.proxy package.

      Export of this package is needed for the new WeldConstruct type that was added to the Weld API in 3.0.SP1.

      Without this export being available, the following exception will be thrown in an OSGi environment:

      org.jboss.weld.exceptions.WeldException: WELD-001524: Unable to load proxy class for bean Built-in Bean [javax.transaction.UserTransaction] with qualifiers [@Default] with class interface javax.transaction.UserTransaction using classloader WebappClassLoader (delegate=true; repositories=WEB-INF/classes/)
      	at org.jboss.weld.bean.proxy.ProxyFactory.getProxyClass(ProxyFactory.java:389)
      	at org.jboss.weld.bean.proxy.ProxyFactory.run(ProxyFactory.java:351)
      	at org.jboss.weld.bean.proxy.ProxyFactory.create(ProxyFactory.java:343)
      	at org.jboss.weld.bean.builtin.ee.AbstractEEBean.<init>(AbstractEEBean.java:36)
      	at org.jboss.weld.module.jta.UserTransactionBean.<init>(UserTransactionBean.java:52)
      	at org.jboss.weld.module.jta.WeldTransactionsModule.preBeanRegistration(WeldTransactionsModule.java:46)
      	at org.jboss.weld.module.WeldModules.preBeanRegistration(WeldModules.java:158)
      	at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:224)
      	at org.jboss.weld.bootstrap.WeldStartup.deployBeans(WeldStartup.java:422)
      	at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:83)
      	at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:259)
      	... 66 more
      Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jboss/weld/proxy/WeldConstruct
      	at org.jboss.weld.util.bytecode.ClassFileUtils.toClass(ClassFileUtils.java:101)
      	at org.jboss.weld.bean.proxy.ProxyFactory.createProxyClass(ProxyFactory.java:488)
      	at org.jboss.weld.bean.proxy.ProxyFactory.getProxyClass(ProxyFactory.java:381)
      	... 76 more
      Caused by: java.lang.NoClassDefFoundError: org/jboss/weld/proxy/WeldConstruct
      	at java.lang.ClassLoader.defineClass1(Native Method)
      	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
      	at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.jboss.weld.util.bytecode.ClassFileUtils.toClass2(ClassFileUtils.java:108)
      	at org.jboss.weld.util.bytecode.ClassFileUtils.toClass(ClassFileUtils.java:97)
      	... 78 more
      Caused by: java.lang.ClassNotFoundException: org.jboss.weld.proxy.WeldConstruct
      	at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1655)
      	at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1501)
      

      I've manually added the export to the MANIFEST.MF file, and after that the exception is gone and CDI seems to work again.

      Attachments

        Activity

          People

            manovotn Matěj Novotný
            arjan.tijms@gmail.com Arjan Tijms (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: