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

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

    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.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                manovotn Matej Novotny
                Reporter:
                atijms arjan tijms
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: