Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
sjm
Contributor
Contributor

Problem with tDotNet Components

Hi,

I am trying out the following components tDotNetInstantiate and tDotNetRow (Talend Open Studio 7.2). I have successfully completed the examples in Talend documentation (https://help.talend.com/reader/jomWd_GKqAmTZviwG_oxHQ/uxiSSj3xwcSy5zNMKgnfkA?section=dotnet-tdotnetr...)

 

However if I publish a DLL from Visual Studio in 32 bit (x86) rather than 64 bit and try and reference this, I receive an error message..

System.BadImageFormatException: Could not load file or assembly 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/HelloWorld.dll' or one of its dependencies. is not a valid Win32 application.

Is it possible to run a 32 bit dll from 64 bit TOS in this example? The reason I ask is I have a requirement to access a legacy dll for a data process.

thanks!

Labels (2)
8 Replies
fdenis
Master
Master

did you install corresponding runtime?

"To use this component, you must first install the runtime DLLs, for example janet-win32.dll for Windows32-bit version and janet-win64.dll for Windows 64-bitversion, from the corresponding Microsoft Visual C++ Redistributable Package. This allows you to avoid errors like the Unsatisfied Link Error on dependent DLL. "


regards
sjm
Contributor
Contributor
Author

Hi,

thanks for your reply, yes I did do that. Although I wasn't sure of the actual installation process, I just placed a copy of these files in C:\Windows\System32 and the bin folder of the Java installation, where do they actually need to be installed?

The tDotNet components do work with a simple dll I created. I think the problem is if I create a dll as 32 bit and use that in the components (which is what I need to do) it doesn't seem to like the 64 bit environment (Windows/Talend/Java) I am trying to run it in ?

pbz1983
Contributor II
Contributor II

To add a little value to the thread, I have issues since upgrading from TOS 6.5 > 7.2.1 + 7.3.1 (and also multiple M versions in between).

In my 'live' projects I pass data via tRowGenerator to the tDotNetRow component and since v7 it results in error.

 

example;

0683p000009MA0m.png

System.InvalidCastException: Unable to cast object of type 'System.NullReferenceException' to type 'System.Reflection.Assembly'.
at Java_org_talend_net_Object_createInstanceLib(JNIEnv_* env, _jobject* _this, _jstring* className, _jobject* jAssembly, _jobjectArray* params, _jobjectArray* types)

 

I believe the values are not being passed through to the component.

 

Please can this be investigated further..........

Anonymous
Not applicable

i am also getting same issue, someone please help

Anonymous
Not applicable

i also upgraded the studio version 7.2 to 7.3 i placed the janet dlls in java run time as well as windows/system32 

i have installed vc++ redistributable and .net frame work previous it is working without any issues while running in 7.3  getting this error  can anyone help me on this

 

[WARN ]: org.eclipse.jetty.server.handler.ContextHandler - Empty contextPath
System.InvalidCastException: Unable to cast object of type 'System.NullReferenceException' to type 'System.Reflection.Assembly'.
at Java_org_talend_net_Object_createInstanceLib(JNIEnv_* env, _jobject* _this, _jstring* className, _jobject* jAssembly, _jobjectArray* params, _jobjectArray* types)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (0xe0434352), pid=9136, tid=0x0000000000001f14
#
# JRE version: Java(TM) SE Runtime Environment (8.0_241-b07) (build 1.8.0_241-b07)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.241-b07 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [KERNELBASE.dll+0x39159]


Capture.PNG
diemerga
Contributor
Contributor

Same problem here, i resolved it by using the dll from https://talend-update.talend.com/nexus/content/repositories/libraries/org/talend/libraries/janet-dll_40/1.0/janet-dll_40-1.0.zip. Probably it is a specific .net version dependency and this is a newer builded...

Ram12
Contributor
Contributor

This solution helped. Thank you very much.

MisterJack
Contributor
Contributor

Hello,

 

Before use the good version of janet i had this error:

System.InvalidCastException: Unable to cast object of type 'System.NullReferenceException' to type 'System.Reflection.Assembly'.

 

I used the specific janet dll but i had again an error:

System.InvalidCastException: Unable to cast object of type 'System.AccessViolationException' to type 'System.Reflection.Assembly'.

 

To resolve it, in Talend Studioin the module panel, make sure you use janet-java-1.2.jar for tDotnet component. In my case I used the janet-java-1.1.jar and it was the problem.

 

Hope it helps you.