Null pointer exception in CDI Bean inject Switchyard
ramandeep Dec 2, 2015 10:42 AMHi Guys,
I am working on a SwitchYard project where I am trying to consume a Rest Service. Its running on Jboss EAP 6.3 though I have tried on Wildfly but error remains the same.
The application gets deployed on the server successfully. But when I hit the URL, it gives a NullPointerException in the bean class where I am injecting a interface reference.
For the past week I am struggling to find the solution for this NullPointerException, tried everything on Google but its not ready to move.
I am pasting few of code snippets, which may help you get more understanding.
Below is code snippet from my Bean class
InvoiceGetBean .java
@Service(InvoiceGet.class)
public class InvoiceGetBean implements InvoiceGet {
private static final Logger LOGGER = Logger.getLogger(InvoiceGetBean.class);
@Inject
@Reference("FXReference")
private FXReference restService;
public JSONObject getUserList(String searchInfo) throws Exception {
LOGGER.info("value of restService : -------------------------------->" +restService);
Here the value of restService is null for me . Below is the Interface reference which I am trying to inject .
public interface FXReference {
String getInvoice(InvoiceRequestDetails inv);
My beans.xml is an empty file
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd" > </beans>
below is the snippet from switchyard.xml
<sca:component name="InvoiceGetBeanFX">
<bean:implementation.bean class="com.example.switchyard.switchyard_example1.InvoiceGetBean"/>
<sca:service name="InvoiceGet">
<sca:interface.java interface="com.example.switchyard.switchyard_example1.InvoiceGet"/>
</sca:service>
<sca:reference name="FXReference">
<sca:interface.java interface="com.example.switchyard.switchyard_example1.FXReference"/>
</sca:reference>
</sca:component>
<sca:reference name="FXReference" multiplicity="0..1" promote="InvoiceGetBeanFX/FXReference">
<sca:interface.java interface="com.example.switchyard.switchyard_example1.FXReference"/>
<resteasy:binding.rest name="InvoiceGet">
<sy:operationSelector operationName="getInvoice"/>
<resteasy:messageComposer class="com.example.switchyard.switchyard_example1.CustomComposer"/>
<resteasy:interfaces>com.example.switchyard.switchyard_example1.KC1UserInterface</resteasy:interfaces>
<resteasy:address>http://${restHost}:${restPort}/${restPath}</resteasy:address>
</resteasy:binding.rest>
</sca:reference>
The logger prints Null in console when I run the application as the reference has not been injected.
Could you please help me in pointing the mistake ? I will attach my project if there is someone who wants to have look .