You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Ghazanfar Ali (Jira)" <ji...@apache.org> on 2023/03/26 09:14:00 UTC

[jira] [Created] (CAMEL-19199) Unable to start PLC4X route in camel-plc4x

Ghazanfar Ali created CAMEL-19199:
-------------------------------------

             Summary: Unable to start PLC4X route in camel-plc4x
                 Key: CAMEL-19199
                 URL: https://issues.apache.org/jira/browse/CAMEL-19199
             Project: Camel
          Issue Type: Bug
    Affects Versions: 3.20.2
         Environment: Camel core version : 3.20.2 Camel-PLC4X version : 3.20.2

IDE - Eclipse, OS - Windows 10, Java 11
            Reporter: Ghazanfar Ali


I am using [ModbusPal|https://plc4x.apache.org/users/getting-started/virtual-modbus.html] to create the Virtual modbus.

I am using the endpoint URI as:

 
{code:java}
plc4x:modbus-tcp://localhost:502?unitId=1&dataType=holding-register&addresses=1{code}
Following is the screenshot of Modbus holding registers:

!https://user-images.githubusercontent.com/62088117/227714761-e6486993-f44a-4482-a7be-e76e5a94b49c.png|width=354,height=350!

But when starting camel context it throws NullPointerException.

 
{code:java}
java.lang.NullPointerException
    at org.apache.camel.component.plc4x.Plc4XConsumer.startUnTriggered(Plc4XConsumer.java:89)
    at org.apache.camel.component.plc4x.Plc4XConsumer.doStart(Plc4XConsumer.java:81)
    at org.apache.camel.support.service.BaseService.start(BaseService.java:119) {code}
I debugged it and found the problem is with this line in PLC4XConsumer line 89:

 
{code:java}
for (Map.Entry<String, Object> tag : tags.entrySet()) {{code}
 

Here *tags* are null, so it might be that I am not configuring the endpoint correctly.

So, I tried by configuring the endpoint by creating an instance of Plc4XEndpoint and then configuring the tags there, it works like:
{code:java}
Map<String, Object> map = new HashMap<>();
            map.put("value-1", "holding-register:1");
            
            Plc4XEndpoint plc4xEndpoint = new Plc4XEndpoint("plc4x:modbus-tcp://localhost:502",
                    getContext().getComponent("plc4x"));
            plc4xEndpoint.setTags(map);
            from(plc4xEndpoint).log("value : ${body}"); {code}
But why it is not working if I configure the endpoint as just String?

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)