Эта ошибка возникает только иногда, поэтому моя среда должна быть в основном правильной:
- Java Апплет работает в 32-битной JRE. В настоящее время это 1.8_172, но ошибка может произойти с каждой версией теста. Это включает Java 1.6 и 1.7 в различных точечных выпусках.
- Погашения 32-битная DLL правильно зарегистрирована
- Использование Outlook 32-битной (ошибка происходит с различными версиями и ревизиями Outlook)
- jacob.dll 32-битный и находится в пути
Код выглядит следующим образом:
ActiveXComponent m_oOutlook = ActiveXComponent.connectToActiveInstance( "Outlook.Application" );
Dispatch m_mail = Dispatch.invoke( m_oOutlook.getObject(), "CreateItem", Dispatch.Get, new Object[] { "0" }, new int[0] ).toDispatch();
ActiveXComponent m_safeMailItem = new ActiveXComponent( "Redemption.SafeMailItem" ); // <-- exception happens here
В большинстве случаев наше приложение, использующее этот код, не имеет проблем с отправкой электронной -почта через это вообще. Но иногда это приводит к следующему исключению:
com.jacob.com.ComFailException: Can't co-create object
at com.jacob.com.Dispatch.createInstanceNative(Native Method)
at com.jacob.com.Dispatch.<init>(Dispatch.java:99)
at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58)
Это может произойти после того, как несколько электронных писем были успешно отправлены в одном сеансе.
У меня нет идей, поскольку проблема не воспроизводима совсем. Это иногда случается.
Наш текущий обходной путь: перезапустите наше приложение и, если это не поможет, перезапустите Outlook тоже.