[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