Topic RSS19:47, EEST
April 12, 2016
OfflineI want to create a method node but it,s not working . my code is below
NodeId parentNode=MyObjects; // its a folder
NodeId typeDefinition=null;
NodeClass nodeClass=NodeClass.Method;
NodeAttributes nodeAttributes=null;
MethodAttributes methodAttributes = new MethodAttributes();
methodAttributes .setDescription(LocalizedText.english(“I am a method type “));
methodAttributes .setSpecifiedAttributes(NodeAttributesMask.getMask(
NodeAttributesMask.Description,
NodeAttributesMask.DisplayName,
NodeAttributesMask.UserWriteMask,
NodeAttributesMask.WriteMask));
methodAttributes .setUserWriteMask(UnsignedInteger.ONE);
methodAttributes .setWriteMask(UnsignedInteger.ONE);
methodAttributes .setExecutable(true);
nodeAttributes=methodAttributes ;
String name=”myMethod”;
String NameSpaceIndex=2;
NodeId newNodeId = new NodeId(NameSpaceIndex,name);
QualifiedName browseName=new QualifiedName(NameSpaceIndex,name);
Id = client.getAddressSpace().addNode(
parentNode,
Identifiers.HasComponent,
newNodeId,
browseName,
nodeClass,
nodeAttributes,
typeDefinition);
its not working it throws a exception
com.prosysopc.ua.ServiceException: ServiceFault: Bad_InternalError (0x80020000) “An internal error occurred as a result of a programming or configuration error.”
Diagnostic Info: ServiceFault: Bad_InternalError (0x80020000) “An internal error occurred as a result of a programming or configuration error.”
Diagnostic Info: com.prosysopc.ua.server.UaInstantiationException: Could not get type node.
at com.prosysopc.ua.server.NodeManagerUaNode.createNodeBuilder(Unknown Source)
at com.prosysopc.ua.server.NodeManagerUaNode.createNodeBuilder(Unknown Source)
at com.prosysopc.ua.server.NodeManagerUaNode.createInstance(Unknown Source)
at com.prosysopc.ua.server.NodeManagerUaNode.createInstance(Unknown Source)
at server.MyNodeManager.addNode(MyNodeManager.java:542)
at com.prosysopc.ua.server.NodeManagerTable.addNode(Unknown Source)
at com.prosysopc.ua.server.NodeManagerTable.addNode(Unknown Source)
at com.prosysopc.ua.server.NodeManagementServiceHandler.addNode(Unknown Source)
at com.prosysopc.ua.server.NodeManagementServiceHandler.addNodes(Unknown Source)
at com.prosysopc.ua.server.NodeManagementServiceHandler.onAddNodes(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.opcfoundation.ua.application.ServiceHandlerComposition$1.serve(Unknown Source)
at org.opcfoundation.ua.application.ServiceHandlerComposition.serve(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.OpcTcpServerSecureChannel.handleSecureMessage(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.OpcTcpServerConnection.handleSecureMessage(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.OpcTcpServerConnection$4.onMessageComplete(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.SecureInputMessageBuilder.fireComplete(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.SecureInputMessageBuilder.setMessage(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.SecureInputMessageBuilder$1.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at org.opcfoundation.ua.application.ServiceHandlerComposition$1.serve(Unknown Source)
at org.opcfoundation.ua.application.ServiceHandlerComposition.serve(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.OpcTcpServerSecureChannel.handleSecureMessage(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.OpcTcpServerConnection.handleSecureMessage(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.OpcTcpServerConnection$4.onMessageComplete(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.SecureInputMessageBuilder.fireComplete(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.SecureInputMessageBuilder.setMessage(Unknown Source)
at org.opcfoundation.ua.transport.tcp.nio.SecureInputMessageBuilder$1.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
***
*
*
*
*
*
*
*
*
*\
*
*
*
i also tried with typedefination = Identifiers.MethodNode;
Id = client.getAddressSpace().addNode(
parentNode,
Identifiers.HasComponent,
newNodeId,
browseName,
nodeClass,
nodeAttributes,
Identifiers.MethodNode);
it also not working…
**
*
*
*
*
*
*\
*
*
i also tried with this call
AddNodesItem item = new AddNodesItem(client.getNamespaceTable().toExpandedNodeId(parentNode),
referenceTypeId,
client.getNamespaceTable().toExpandedNodeId(newNodeId),
browseName,
nodeClass.Method,
ExtensionObject.binaryEncode(nodeAttributes, client.getEncoderContext()),
ExpandedNodeId.NULL);
Id = client.getAddressSpace().addNode(item);
Its also not working … 🙁 🙁
what should i do now ??
these all methods throw same exception 🙁



17:12, EEST
April 3, 2012
OfflineHi,
I guess I should have been more specific in my answer to https://forum.prosysopc.com/for…..iton-node/ .
The NodeManagerUaNode.createInstance works only when the NodeId/ExpandedNodeId/class defines a (ua) type, because it creates instances of that type. Therefore you need to change the override I described in the link above to call super.createNodeForAddNode if the typeDefnitionId is null,(or call getNodeFactory().createNode(nodeClass, nodeId, browseName, displayName, typeDefinitionId) which is what it does by default).
In case you want, could you describe the use case for client side created Method nodes? I’m just curious as this is the first time I have seen anyone trying to add method nodes from the client side (well anyway even using the AddNodes service is not that common) because unless you also dynamically handle calling of that method it does nothing (you could handle it dynamically similar to how MyMethodManagerListener example does in the samples and add different handling as you add the nodes, but still I’m not aware of any existing use cases of this
).
– Bjarne
1 Guest(s)

Log In
Register