2017-07-27 2 views
0

Ich befolge die unter https://community.hortonworks.com/articles/90355/collect-data-from-opc-ua-protocol.html beschriebenen Schritte, um eine Verbindung zu einem OPC UA Server von NiFi herzustellen.Wert vom OPCUA Server in Nifi sammeln

Ich baute https://github.com/wadesalazar/NIFI-OPCUA aus dem Quellcode mit Maven. Das Ergebnis waren mehrere Nar-Dateien und JAR-Dateien. Das Gefäß und nar für mich erhalten sind:

opcua-Stack-1.03.341.0-SNAPSHOT.jar

nifi-opcua-Bündel-Prozessoren-0.0.1-SNAPSHOT.jar

nifi -opcua-Service-0.0.1-SNAPSHOT.jar

nifi-opcua-Service-api-0.0.1-SNAPSHOT.jar

opc-deploy-local-0.0.1-SNAPSHOT.jar

nifi-opcua-service-api-nar-0.0 0,1-SNAPSHOT.nar

nifi-opcua-Service-nar-0.0.1-SNAPSHOT.nar

nifi-opcua-Bündel-nar-0.0.1-SNAPSHOT.nar

Wenn i füge alle nar- und jar-dateien in den lib-ordner von nifi ein, die nifi stürzt beim starten ab. Der Fehler ist:

org.apache.nifi.processor.Processor: Provider com.kentender.nifi.nifi_opcua_bundle.GetNodeIds could not be instantiated 
java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Provider com.kentender.nifi.nifi_opcua_bundle.GetNodeIds could not be instantiated 
    at java.util.ServiceLoader.fail(ServiceLoader.java:232) 
    at java.util.ServiceLoader.access$100(ServiceLoader.java:185) 
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384) 
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) 
    at java.util.ServiceLoader$1.next(ServiceLoader.java:480) 
    at org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:138) 
    at org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:104) 
    at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:699) 
    at org.apache.nifi.NiFi.<init>(NiFi.java:160) 
    at org.apache.nifi.NiFi.main(NiFi.java:267) 
Caused by: java.lang.NoClassDefFoundError: org/apache/nifi/processor/util/StandardValidators 
    at com.kentender.nifi.nifi_opcua_bundle.GetNodeIds.<clinit>(GetNodeIds.java:55) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at java.lang.Class.newInstance(Class.java:442) 
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380) 
    ... 7 common frames omitted 
Caused by: java.lang.ClassNotFoundException: org.apache.nifi.processor.util.StandardValidators 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 14 common frames omitted 
2017-07-27 18:24:14,184 INFO [Thread-1] org.apache.nifi.NiFi Initiating shutdown of Jetty web server... 
2017-07-27 18:24:14,184 INFO [Thread-1] org.apache.nifi.NiFi Jetty web server shutdown completed (nicely or otherwise). 

Wenn ich nur nar Dateien einfügen, die Nifi bootet und ich bin in der Lage, den individuellen GetNodeIds Prozessor, um zu sehen, aber ich bin nicht in der Lage, die Daten von OPCUA Server zu empfangen. Der Service wirft einen Fehler wie

java.lang.noclassdeffounderror: org/bouncycastle/crypto/DataLengthException 

Welche nar und Glas zu Ordner lib Nifi kopiert werden soll, um es funktioniert und wie ist der Prozess korrekt ablaufen.

Antwort

0

ziemlich sicher, dass jar Dateien, die Sie nach dem Kompilieren erhalten, in nar Dateien enthalten sind.

so sollten Sie nur nar in lib dir kopieren.

aber nach dem folgenden Dokument erfordert upc-ua zusätzliche jars:

https://github.com/OPCFoundation/UA-Java#runtime-dependencies

kopieren Sie einfach zusätzlich benötigten Bibliotheken in lib Ordner.

+0

Danke für die Antwort! @daggett –