Hi

What exact method on producer template are you using? The requestBody
does not have a method that takes 5 parameters.

On Sun, May 30, 2021 at 10:47 AM marcello cappelli <kcell...@gmail.com> wrote:
>
> A few months ago I started working on a project that requires the integration 
> of OPC / UA to communicate with an automatic machine. Working with SpringBoot 
> I looked for a library that was well integrated with this framework and in 
> several posts and thesis I found Eclipse Milo, but in the version integrated 
> with Apache Camel. Not knowing either Camel or Milo, I had to study both at 
> least. Camel has a huge documentation, while the integration with Milo is 
> limited to the parameterization and configuration of the Nodes to perform the 
> reading and writing. That said it seems more than enough but in reality, 
> since there are no specific examples, I had to search for posts several times 
> to understand where I was wrong and clearly it took a lot of time. I find it 
> normal to study and experiment but you know very well how urgent the 
> deliveries we have as developers are and we don't always have free days to 
> devote to research and testing. Now for example, I was able to run the reads 
> and writes co
>  rrectly while the function calls have a strange behavior, that is, every 
> time I call the test function, the value that is returned to me is the 
> parameter that I give in input, even if, enabling the TRACE on Camel and Milo 
> I see that the function is called correctly and in the OutputArguments there 
> is the result I expect but Camel keeps returning the InputArguments. It's 
> certainly my mistake but I can't find anything to help me understand where 
> I'm wrong. No example, no similar case, nothing at all, so I wondered if the 
> choice I made is the right one and if someone can give me some advice because 
> I don't know what else to try.
>
> Here the test simplified code I'm trying to do:
> ```
> Variant[] params = new Variant[1];
> params[0] = new Variant(13);
>
> String  endpointUri = 
> "milo-client:opc.tcp://milo.digitalpetri.com:62541/milo?node=RAW(ns=2;s=Methods)"&method=RAW(ns=2;s=Methods/sqrt(x))";
> return producerTemplate.requestBody(endpointUri, params, "await", true, 
> Variant.class);
> ```
>
> The returned object is the same as I input, even if looking at the log I see 
> that the function call is executed correctly:
> ```
>  2021-mag-20 11:14:07.613 TRACE [milo-netty-event-loop-1] 
> o.e.m.o.s.c.t.t.OpcTcpTransport - Write succeeded for request=PublishRequest, 
> requestHandle=16
>  2021-mag-20 11:14:07.598 DEBUG [milo-shared-thread-pool-1] 
> o.a.c.c.m.c.i.SubscriptionManager - Call to node=ExpandedNodeId{ns=2, 
> id=Methods, serverIndex=0}, method=ExpandedNodeId{ns=2, id=Methods/sqrt(x), 
> serverIndex=0} = [Variant{value=13.0}]-> 
> CallMethodResult{StatusCode=StatusCode{name=Good, value=0x00000000, 
> quality=good}, InputArgumentResults=[StatusCode{name=Good, value=0x00000000, 
> quality=good}], InputArgumentDiagnosticInfos=[], 
> OutputArguments=[Variant{value=3.605551275463989}]}
> ```
>
> This are my dependencies :
> ```
> <dependency>
>   <groupId>org.apache.camel.springboot</groupId>
>   <artifactId>camel-spring-boot-starter</artifactId>
>   <version>3.9.0</version>
> </dependency>
> <dependency>
>   <groupId>org.apache.camel.springboot</groupId>
>   <artifactId>camel-milo-starter</artifactId>
>   <version>3.9.0</version>
> </dependency>
> ```
>
> Can someone help me?
> Many thanks



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to