[weld-dev] Staring weld container for SE environment makes me load java ee classes.

Alex Sviridov ooo_saturn7 at mail.ru
Wed May 16 14:02:14 EDT 2018


Hi Matej

I followed your answer and run Weld (SE) as auto module in my JPMS layer. In this layer I have an arhive with beans.xml
This is my code:
       Weld weld = new Weld();
        WeldContainer container = weld.initialize();

This is what I get:

INFO: WELD-000900: 3.0.4 (Final)
May 16, 2018 7:00:39 PM org.jboss.weld.environment.deployment.discovery.ReflectionDiscoveryStrategy processAnnotatedDiscovery
INFO: WELD-ENV-000014: Falling back to Java Reflection for bean-discovery-mode="annotated" discovery. Add org.jboss:jandex to the classpath to speed-up startup.
2018-05-16 19:00:39:187 [main] ERROR com.techsenger.webserver.core.internal.Activator - Error starting server
java.lang.IllegalStateException: WELD-ENV-002009: Weld SE container cannot be initialized - no bean archives found
    at weld.se.core at 3.0.4.Final/org.jboss.weld.environment.se.Weld.createDeployment(Weld.java:962)
    at weld.se.core at 3.0.4.Final/org.jboss.weld.environment.se.Weld.initialize(Weld.java:773)

Are there any ways to control what modules Weld should scan if we initialize via Weld class?

By the way: STOP creating packages with the same name in different JAR arhives! JPMS doesn't allow it! I had to merge core-impl, spi and api in one file.

Best regards, Alex

>Среда, 16 мая 2018, 16:47 +03:00 от Matej Novotny < manovotn at redhat.com >:
>
>Weld 2.x is NOT to be executed with Java 9+.
>Use Weld 3, please. Best use latest release of course (3.0.4.Final).
>
>If you can share the test project on GH, that would be neat as well.
>Then we could see how you use weld as auto module (as well as many other configurations) and go from there.
>
>As for starting SE container, you shouldn't manually call `bootstrap.startContainer(Environments.SE, deployment);`
>Please see the docs on how to bootstrap Weld in SE, you shouldn't need to deal with any of the methods you listed below.
>Here is a doc link -  http://docs.jboss.org/weld/reference/latest-master/en-US/html_single/#_bootstrapping_cdi_se
>
>Regards
>Matej
>
>----- Original Message -----
>> From: "Alex Sviridov" < ooo_saturn7 at mail.ru >
>> To: "weld-dev" < weld-dev at lists.jboss.org >
>> Sent: Wednesday, May 16, 2018 1:51:20 PM
>> Subject: [weld-dev] Staring weld container for SE environment makes me load java ee classes.
>> 
>> Hi all
>> 
>> I am trying to start weld container (2.3.5) as auto module in JPMS. This is
>> my code
>> 
>> Deployment deployment = new Deployment() {
>> @Override
>> public Collection<BeanDeploymentArchive> getBeanDeploymentArchives() {
>> List<BeanDeploymentArchive> list = new ArrayList<>();
>> list.add(archive);
>> return list;
>> }
>> 
>> @Override
>> public BeanDeploymentArchive loadBeanDeploymentArchive(Class<?> beanClass) {
>> throw new UnsupportedOperationException("Not supported yet.");
>> }
>> 
>> @Override
>> public ServiceRegistry getServices() {
>> SimpleServiceRegistry simpleServiceRegistry = new SimpleServiceRegistry();
>> simpleServiceRegistry.add(ResourceLoader.class, new ResourceLoaderImpl());
>> return simpleServiceRegistry;
>> }
>> 
>> @Override
>> public Iterable getExtensions() {
>> return new ArrayList<>();
>> }
>> };
>> 
>> bootstrap.startContainer(Environments.SE, deployment);
>> 
>> The problem is that in BeanDeployment constructor all services are loaded
>> here
>>  https://github.com/weld/core/blob/d0019511ea776e9c35eab68c4d493c2df882a121/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java#L117
>> and if I in my resource loader service return instead of all java-ee classes
>> null, I get null pointer exception, for example here
>>  https://github.com/weld/core/blob/d0019511ea776e9c35eab68c4d493c2df882a121/impl/src/main/java/org/jboss/weld/ejb/EJBApiAbstraction.java#L44
>> 
>> I can't understand why all these classes are requested from me, as I am in
>> SE. Or I am doing something wrong. Could anyone help me?
>> 
>> --
>> Best regards, Alex Sviridov
>> 
>> _______________________________________________
>> weld-dev mailing list
>>  weld-dev at lists.jboss.org
>>  https://lists.jboss.org/mailman/listinfo/weld-dev


-- 
Alex Sviridov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/weld-dev/attachments/20180516/c498bd9f/attachment-0001.html 


More information about the weld-dev mailing list