I am a very newbie in CDI. This is my FIRST example and I am trying to run it. Having searched the internet I wrote the following code: Class that I want to be injected
At me worked with this command:
asadmin set configs.config.server-config.cdi-service.enable-implicit-cdi=false
So disable the enable-implicit-cdi worked for me.
Either no beans.xml
exists within WEB-INF
or the file requires changing bean-discovery-mode="annotated"
to bean-discovery-mode="all"
.
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>
The recommended value "annotated
" only recognizes annotated CDI
managed beans. Beans without any annotation are ignored. As your Temp
class is not CDI
bean, so recommendation is not applicable in your case.
To work with annotated
, annotate the class with @RequestScoped:
// Import only this RequestScoped
import javax.enterprise.context.RequestScoped;
@RequestScoped
public class Temp {
public Temp() { }
public String getMe() {
return "something";
}
}
This RequestScoped
will convert your Temp
class to CDI
bean and will be work with bean-discovery-mode="annotated"
.