2013-04-08 2 views
2

При попытке зарегистрировать дефект в QC я получаю следующую ошибку.Исключение из потока «main» com4j.ExecutionException: com4j.ComException: 80040154 Ошибка CoCreateInstance: класс не зарегистрирован:. Com4j.cpp

  • Ошибка заключается в следующем: Исключение в потоке "основного" com4j.ExecutionException: com4j.ComException: 80040154 CoCreateInstance не удалось: Класс не зарегистрирован:. \ Com4j.cpp: 153 в com4j.ComThread.execute (ComThread.java:203) на com4j.Task.execute (Task.java:25) на com4j.COM4J.createInstance (COM4J.java:97) на com4j.COM4J.createInstance (COM4J.java:72) на com.mercury.qualitycenter.otaclient.ClassFactory.createTDConnection (Неизвестный источник) в библиотеке.DefectDetailsDriver.RaiseDefect (DefectDetailsDriver.java:154) у библиотеки. Runner.main (Runner. java: 86) Вызвано: com4j.ComException: 80040154 Ошибка CoCreateInstance: класс не зарегистрирован:. \ com4j.cpp: 153 at com4j.Native.createInstance (собственный метод) at com4j.COM4J $ CreateInstanceTask.call (COM4J. Java: 117) в com4j.COM4J $ CreateInstanceTask.call (COM4J.java:104) в com4j.Task.invoke (Task.java:51) в com4j.ComThread.run0 (ComThread.java:153) в com4j.ComThread.run (ComThread.java:134)

  • Я использую 64-разрядную машину Win 7, поэтому я загрузил новую версию COM4J и скопировал com4j-amd64.dll в C: \ Windows \ System32, а также c: \ windows \ SysWOW64

  • в Windows 32 бит, я abel, чтобы успешно зарегистрировать дефект.

Просьба помочь.

+0

Возможный дубликат [Как зарегистрировать DLL в Windows 7 64-bit?] (Http: // stackoverflow. com/questions/4897685/how-do-i-register-a-dll-on-windows-7-64-bit) –

+0

Обратите внимание, что я не ищу регистрацию dll в 64-разрядной машине Win 7. Мне нужна помощь в разрешении вышеуказанной ошибки, я получаю эту ошибку, когда я пытался автоматически регистрировать дефект в КК, используя мой код Java. Я уже загрузил новую версию COM4J для 64 бит и зарегистрировал dll. Я могу успешно зарегистрировать дефект в 32 бит, используя свой Java-код. Помогите решить эту ошибку в 64-битной машине. – tester

+2

«класс не зарегистрирован» означает, что COM не может найти информацию об объекте в реестре, соответствующую битте клиента. Если ваше клиентское приложение работает как 64-разрядный процесс, вам необходимо зарегистрировать объект в 64-разрядной части реестра. Вы упомянули, что вы «скопировали» файл, этого недостаточно, вам нужно его зарегистрировать. –

ответ

0

Пожалуйста, зарегистрируйтесь в OTAClient.dll, чтобы избежать этого исключения. Для регистрации вам потребуется следующая команда после копирования файла в нужную папку под Windows.

regsvr32 OTAClient.dll 
+0

Я регистрирую OTAClient.dll, чтобы избежать этого исключения, но не работает для меня. –

0

Так что я смог понять это (наконец). Я сделал регистрацию .dll, которая использует com4j (и это кодовая база) с RegAsm через .Net, которая была использована. В командной строке с повышенными правами перейдите к месту, где используется dll, использующая com4j, и используйте следующую команду: Убедитесь, что вы используете правильную инфраструктуру .Net для используемой библиотеки dll. C: /Windows/Microsoft.NET/Framework64/v4.0.30319/RegAsm.exe .dll/кодовая

0

В 64 битных машин, если вы используете IDE, наведите JRE библиотеку (построить путь) до 32 бит JRE (bin folder) еще вы можете установить 32-разрядную JRE на 64-битных машинах и запустить в этой среде

Смежные вопросы