gpt4 book ai didi

java - 无法在我的独立 Java SE 应用程序中使用 Weld 进行上下文和依赖注入(inject) (CDI)

转载 作者:行者123 更新时间:2023-11-30 07:34:48 26 4
gpt4 key购买 nike

我正在尝试使用 CDI 制作一个独立的 Java SE 应用程序。我关注了 this文章,我正在使用 Weld 。但是,当我尝试实例化 Weldweld = new Weld(); 时,我收到以下 ClassNotFound 错误。

Exception in thread "main" java.lang.NoClassDefFoundError: org/jboss/weld/environment/ContainerInstanceFactory
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.agorava.socializer.Test.main(Test.java:59)
Caused by: java.lang.ClassNotFoundException: org.jboss.weld.environment.ContainerInstanceFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 13 more

我检查了weld-se JAR,它不包含此接口(interface)。这里有什么问题呢?提前致谢。

以下是我的测试类 org.agorav.socializer.Test

public class Test  {

public static void main(String[] args){

Weld w = new Weld();
WeldContainer factory = w.initialize();
OAuthLifeCycleService service = factory.instance().select(OAuthLifeCycleService.class).get();
System.out.println(service.getCurrentService());

}

}

最佳答案

似乎您的问题与版本“org.jboss.weld.environment.ContainerInstanceFactory”有关,新版本(Weld 3)中提供了接口(interface)引用https://github.com/weld/core/commit/36563d252a4a2375692d7669e7a523bb6ba89136

尝试更新您的 Weld SE版本。

关于java - 无法在我的独立 Java SE 应用程序中使用 Weld 进行上下文和依赖注入(inject) (CDI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35553200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com