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