I am having trouble using tDotNetRow - it is always throwing a java.lang.UnsatisfiedLinkError error. For troubleshooting, I created a very simple job and associated .net assembly. job.jpg shows the simple job, that only contains a tDotNetRow component. component.jpg shows the properties of the tDotNetRow component. class.jpb shows the .net class (with its namespace) as configured in the component. The project containing the class is .net2.0 with no other dependencies. And finally, below is the error when attempting to run the job in TOS: Starting job DotNetTest at 16:16 25/01/2012. connecting to socket on port 3621 connected 2012-01-25 16:16:17|NSKn9t|NSKn9t|NSKn9t|5876|MATRIX_PROCESS|DotNetTest|_cQKuEEcSEeGLHLxvu_ahdQ|0.1|Default||begin|| Exception in thread "main" java.lang.Error: java.lang.UnsatisfiedLinkError: no janet-win32 in java.library.path at matrix_process.dotnettest_0_1.DotNetTest.tDotNETRow_1Process(DotNetTest.java:416) at matrix_process.dotnettest_0_1.DotNetTest.runJobInTOS(DotNetTest.java:4534) at matrix_process.dotnettest_0_1.DotNetTest.main(DotNetTest.java:4395) Caused by: java.lang.UnsatisfiedLinkError: no janet-win32 in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) 2012-01-25 16:16:17|NSKn9t|NSKn9t|NSKn9t|5876|MATRIX_PROCESS|DotNetTest|_cQKuEEcSEeGLHLxvu_ahdQ|0.1|Default|tDotNETRow_1|begin|| disconnected at java.lang.System.loadLibrary(Unknown Source) at org.talend.net.Object.loadLibrary(Object.java:201) at org.talend.net.Object.<clinit>(Object.java:164) at matrix_process.dotnettest_0_1.DotNetTest.tDotNETRow_1Process(DotNetTest.java:379) ... 2 more Job DotNetTest ended at 16:16 25/01/2012.
From the wiki, I downloaded the .net 4.0 zip, and placed: janet-win64.dll in C:\Windows\System32 janet-win32.dll in C:\Windows\SysWOW64 If your OS is 32 bit, you should only place: janet-win32.dll in C:\Windows\System32 After that, my jobs successfully run. However I have just noticed that if the object I am trying to instantiate has a base class located in a different assembly, I get a different error: System.ArgumentNullException: Value cannot be null. Parameter name: type at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object args, CultureInfo culture, Object activationAttributes) at Java_org_talend_net_Object_createInstanceLib(JNIEnv_* env, _jobject* _this, _jstring* className, _jobject* jAssembly, _jobjectArray* params, _jobjectArray* types) I'm going to start a new post (or bug?) for this one. In summary, I was able to: - instantiate an object with tDotNetRow (the object had a default empty constructor) - execute an instance method with no parameters - execute an instance method with parameters (order of parameters specified in the component properties must match the order of declaration in the method itself) - execute a static method (without the need for instantiation etc) I am unable to: - instantiate an object where its base class is located in a different assembly, even when that assembly is in the same folder location as the one specified in tDotNetRow