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".