Member 13711589 Ответов: 2

Как вызвать параметризованный конструктор C# в моих веб-приложениях java


У меня есть код C# и с одним Параметризованным конструктором, но я хочу вызвать этот параметризованный конструктор в веб-приложениях java. Моя проблема в том, что я использую Javonet для связи java с .NET, но когда я вызываю этот конструктор класса C#, он вызывает некоторое исключение на сервере tomcat
Hibernate: select customer0_.id as id1_0_, customer0_.email as email2_0_, customer0_.first_name as first_na3_0_, customer0_.last_name as last_nam4_0_ from customer customer0_ order by customer0_.last_name
Setting temporary directory for Javonet lic file to: C:\Users\MANASK~1\AppData\Local\Temp\
hiii........hiii..
com.javonet.api.NException: Exception while trying to create instance of TcpipIntface.Code.Client.AcsTcpClass using 0 parameters
	at SicsClrController.Engine.ClrEngine.CreateInstance(Unknown Source)
	at SicsClrController.Engine.ClrEngine.processCommand(Unknown Source)
	at com.javonet.internal.BinaryStreamProtocol.executeCommand(BinaryStreamProtocol.java:136)
	at com.javonet.internal.GatewayManager.createInstance(GatewayManager.java:257)
	at com.javonet.internal.GatewayManager.createInstance(GatewayManager.java:205)
	at com.javonet.Javonet.New(Javonet.java:564)
	at com.udemy.spring.hibernate.Controller.CustomerController.javaCallCsharp(CustomerController.java:108)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)


Что я уже пробовал:

@GetMapping("/cSharpCall")
public String javaCallCsharp()
{

 final String TMP_DIR = System.getProperty("java.io.tmpdir");

    try
    {
        /*System.out.println("Setting temporary directory for Javonet lic file to: "+TMP_DIR);
        Javonet.setLicenseDirectory(TMP_DIR);*/
        if (!Javonet.isActivated())
        {
            System.out.println("Setting temporary directory for Javonet lic file to: "+TMP_DIR);
            Javonet.setLicenseDirectory(TMP_DIR);
            Javonet.activate("sahumanas1275@gmail.com","Za2j-Hb58-z8J3-b7MA-x4J7",JavonetFramework.v45);
            System.out.println("hiii........hiii..");
        }
        Javonet.addReference("ClassLibrary.dll");
        NObject objRandom = Javonet.New("TcpipIntface.Code.Client.AcsTcpClass");

        byte b=(byte)1;
        Boolean value = objRandom.invoke("Opendoor",b);

        System.out.println(value);

    }
    catch(JavonetException e)
    {
        e.printStackTrace();

    }

    return "redirect:/customer/list";

}

2 Ответов

Рейтинг:
2

Kornfeld Eliyahu Peter

Вы звоните Джавонету.New без параметров, поэтому он пытается вызвать конструктор без параметров, который не существует...
Попробуйте что-нибудь вроде этого:

Javonet.New("DateTime",1980,1,1);


Рейтинг:
1

Kornfeld Eliyahu Peter

Вы звоните Джавонету.New без параметров, поэтому он пытается вызвать конструктор без параметров, который не существует...
Попробуйте что-нибудь вроде этого:

Javonet.New("DateTime",1980,1,1);