У меня есть веб-приложение Java, которое должно перекодировать слайды PowerPoint на изображения.Как заставить приложение Java вызывать PowerPoint через JACOB при запуске в качестве службы?
Для этого приложение подключается через JACOB к PowerPoint.
Чтобы приложение работало правильно, я использую его как услугу (используя nssm). При этом, кажется, я не в состоянии перекодировать слайды изображений из-за следующего за исключением
[1;31m[ERROR] wisdom-error[0;39m [36m{vert.x-eventloop-thread-0}[0;39m - An exception occurred while processing request POST /skillCenter/{portal}/config/add
com.jacob.com.ComFailException: Invoke of: Open
Source: Microsoft Office PowerPoint 2007
Description: PowerPoint could not open the file.
at com.jacob.com.Dispatch.invokev(Native Method) ~[jacob-1.18.jar:na]
at com.jacob.com.Dispatch.invokev(Dispatch.java:625) ~[jacob-1.18.jar:na]
at com.jacob.com.Dispatch.callN(Dispatch.java:453) ~[jacob-1.18.jar:na]
at com.jacob.com.Dispatch.call(Dispatch.java:541) ~[jacob-1.18.jar:na]
at myCompany.myProject.helpers.loaders.powerpoint.MSPowerPoint.getPresentation(MSPowerPoint.java:58) ~[na:na]
at myCompany.myProject.helpers.loaders.powerpoint.MSPowerPoint.transform(MSPowerPoint.java:139) ~[na:na]
Файл РРТ, очевидно, написан в папке, чем могут быть записаны пользователем, который проходит службу (мне , в тестовом примере).
При проверке процессов с Process Hacker я являюсь владельцем цепочки процессов, запускающим мое приложение, а также PowerPoint, которое запускается через svchost.exe.
Итак, что случилось в моем случае? Почему PowerPoint не может получить доступ к файлу при запуске в качестве службы, когда он отлично может открыть этот файл при запуске в качестве классического процесса?
EDIT 1 Я пробовал использовать как системную учетную запись, так и свою учетную запись, и оба счета выявили тот же недостаток.
Какую учетную запись вы используете для запуска вашей службы? – Robert
@Robert Я ответил на ваш комментарий, обновив свой вопрос. – Riduidel