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

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

XMLWordPrintable

      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.

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

                Created:
                Updated:
                Resolved: