2016-02-02 4 views
2

I Добавлен код для подключения и создания дефекта в HP ALM через Eclipse (Java), в котором он сообщает OTAClient и com4j.jar. Я успешно смог подключиться и создать дефект в 32-битной ОС, но я не смог подключить его к 64-разрядной ОС.HP ALM OTAClient.dll несовместим с 64Bit OS

Я пропустил некоторые из решений, размещенных здесь, и хотя после успешного решения я не смог достичь решения. [1]: com4j on Windows 64 bit ..

Вот мой код

import com.ClassFactory; 
import com.IBug; 
import com.IBugFactory; 
import com.ITDConnection; 
import com4j.Variant; 


public class AlmQc { 
public static void main(String args[]) 
{ 
    login(); 
} 

public static void createDefect(ITDConnection connection) { 

    IBugFactory bugFactory = (IBugFactory) connection.bugFactory().queryInterface(IBugFactory.class); 
    IBug bug = (bugFactory.addItem(new Variant(Variant.Type.VT_NULL))).queryInterface(IBug.class); 

    bug.assignedTo("Administrator"); 
    bug.detectedBy("Administrator"); 
    bug.status("New"); 
    bug.project("Banking"); 
    bug.summary("Created by Esh"); 
    //bug.priority("Low"); 
    bug.field("BG_SEVERITY", "2-Medium"); 
    bug.field("BG_DETECTION_DATE", "2016-01-27 00:00:00"); 
    bug.post(); 

} 

public static void login() 
{ 

    String url = "http://almqc:8080/qcbin"; 


    String username = "Administrator"; 
    String password = "********"; 

    String domain = "DEFAULT"; 

    String project = "Banking"; 

    ITDConnection itdc = ClassFactory.createTDConnection(); 

    itdc.initConnectionEx(url); 

    itdc.connectProjectEx(domain, project, username, password); 
    System.out.println(itdc.projectConnected()); 
    createDefect(itdc); 
} 

Во время работы над кодом в затмении я столкнулся следующие ошибки.

Exception in thread "main" com4j.ExecutionException: com4j.ComException: 80040154 CoCreateInstance failed : Class not registered : .\com4j.cpp:153 
at com4j.ComThread.execute(ComThread.java:203) 
at com4j.Task.execute(Task.java:25) 
at com4j.COM4J.createInstance(COM4J.java:97) 
at com4j.COM4J.createInstance(COM4J.java:72) 
at com.mercury.qualitycenter.otaclient.ClassFactory.createTDConnection(Unknown Source) 
at Sample.main(Sample.java:18) 
Caused by: com4j.ComException: 80040154 CoCreateInstance failed : Class not registered : .\com4j.cpp:153 
at com4j.Native.createInstance(Native Method) 
at com4j.COM4J$CreateInstanceTask.call(COM4J.java:117) 
at com4j.COM4J$CreateInstanceTask.call(COM4J.java:104) 
at com4j.Task.invoke(Task.java:51) 
at com4j.ComThread.run0(ComThread.java:153) 
at com4j.ComThread.run(ComThread.java:134) 

Просьба указать любой способ или решение, успешно выполненное на основе 64 бит на основе ОС.

ответ

1

Вам понадобится 32-разрядная версия вашей программы, которая может использовать 32-разрядную версию OTACLIENT.DLL. Я не знаю 64-разрядной версии OTACLIENT.DLL.

0

OTAClient - это чистая оконная dll, хотя вы используете java, вам нужно зарегистрировать ее на компьютере с Windows. Лучше всего использовать его с помощью .net, в таких случаях вы можете создавать окна/веб-службы, открытые через http. С помощью этой службы вы можете разработать код C# для работы с OTAClient.dll. Используя службу web/rest/wcf, вы можете общаться с разработанным сервисом. Gr8 - это позволяет вам запускать 64-битную архитектуру. IIS также позволяет с параметром «Включить 32-разрядное приложение» на уровне пула приложений.

1

Проблема не в 64-разрядной ОС, а с 64-разрядной JRE. Если вы используете IDE, укажите вашу библиотеку JRE (путь сборки) к 32-битной JRE (папке с бинами), иначе вы также можете установить 32-битную JRE на 64-битных машинах и запустить в этой среде