10:24, EET
June 27, 2018
Hello all,
we have implemented an OPC server that dynamically publishes and processes methods. For this we also use our own DynamicStructures which are generated at runtime (from a config). Actually everything works fine. When writing the output arguments (Variant[] outputs) in the MethodManagerListener I always get the following error message:
ERROR From ObjectUtils / _printfieldsDeep
However, the call and the response to the PLC work successfully. Background:
The program saves the StructureSpecification Object of the method for the OutputArguments. I then use the following call (simplified) to write the outputs:
DynamicStructure value = new DynamicStructure(this.dynamicOut.getStructure());
value.set(“number”, 5);
value.set(“text”, “string”);
outputs[0] = new Variant(value);
Is this not how it is supposed to be?
13:38, EET
April 3, 2012
Hi,
Thanks for the note.
Unless you specifically want to TRACE log com.prosysopc.ua.stack.transport.tcp.nio.OpcTcpServerConnection, you can ignore it as a cosmetic bug. This also should only happen if that class is on TRACE level (unless you have called the ObjectUtils.printFieldsDeep yourself). You most likely wont want to have it on TRACE by default, as it would output very much log.
…
…
Technical reason is that apparently the original developers of the “Java Stack” have decided to use system out as the error handling there … we should fix that in some future version …
Anyway, in the past I believe Structure toString implementations used that method, but nowadays everything bases on AbstractStructure and it’s toString uses the StructureSpecification etc. thus basically the ObjectUtils.printFieldsDeep is not needed anymore.
Also, that method would have had problems with custom Structures, as it would lack the access to the EncoderContext, … I wont be debugging this further as I do not see need (correct if there is), but maybe something like that happened (most likely it was an array and it tried to use MultiDimensionArrayUtils.toString(Object object), which also lacks the context, though nowadays there is toString(Object object, EncoderContext ctx) overload).
Most Users Ever Online: 1919
Currently Online:
15 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Heikki Tahvanainen: 402
hbrackel: 144
rocket science: 88
pramanj: 86
Francesco Zambon: 83
Ibrahim: 78
Sabari: 62
kapsl: 57
gjevremovic: 49
Xavier: 43
Member Stats:
Guest Posters: 0
Members: 735
Moderators: 7
Admins: 1
Forum Stats:
Groups: 3
Forums: 15
Topics: 1523
Posts: 6449
Newest Members:
rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettinger, howardkennerley, Thomassnism, biancacraft16Moderators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0
Administrators: admin: 1