Я тестировал поведение Weld & CDI, но всякий раз, когда я вызываю Weld :: shutdown (), выдается исключение VerifyError
:
Exception in thread "main" java.lang.VerifyError: Bad return type
Exception Details:
Location:
org/jboss/weld/environment/se/WeldSEProvider.getCDI()Ljavax/enterprise/inject/spi/CDI; @38: areturn
Reason:
Type 'org/jboss/weld/environment/se/WeldContainer' (current frame, stack[0]) is not assignable to 'javax/enterprise/inject/spi/CDI' (from method signature)
Current Frame:
bci: @38
flags: { }
locals: { 'org/jboss/weld/environment/se/WeldSEProvider', 'java/util/List' }
stack: { 'org/jboss/weld/environment/se/WeldContainer' }
Bytecode:
0000000: b800 124c 2bb9 0013 0100 9900 0501 b02b
0000010: b900 1401 0004 a000 112b 03b9 0015 0200
0000020: c000 16b8 0017 b0b2 0018 2bb9 0019 0200
0000030: 2ab7 001a 4d2c c600 0f2a b400 072c b800
0000040: 1bc0 000f b02b 03b9 0015 0200 c000 16b8
0000050: 0017 b0
Stackmap Table:
append_frame(@15,Object[#71])
same_frame(@39)
append_frame(@69,Object[#72])
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at javax.enterprise.inject.spi.CDI.findAllProviders(CDI.java:117)
at javax.enterprise.inject.spi.CDI.current(CDI.java:53)
at org.jboss.weld.bootstrap.WeldBootstrap.shutdown(WeldBootstrap.java:651)
at org.jboss.weld.bootstrap.api.helpers.ForwardingBootstrap.shutdown(ForwardingBootstrap.java:44)
at org.jboss.weld.environment.se.ShutdownManager.shutdown(ShutdownManager.java:44)
at org.jboss.weld.environment.se.Weld.shutdown(Weld.java:223)
at org.Main.main(Main.java:15)
Что я делаю неправильно? Разве я не должен использовать метод Weld :: shutdown вообще?
public static void main(String[] args) {
Weld weld = new Weld();
WeldContainer container = weld.initialize();
ImageFileProcessor imageFileProcessor = container.instance().select(ImageFileProcessor.class).get();
System.out.println(imageFileProcessor.openFile("file1.png"));
weld.shutdown();
}
Это для Java 8, зависимость от сварки:
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se</artifactId>
<version>2.3.4.Final</version>
</dependency>