2016-05-02 2 views
1

im ins борется со странной проблемой. Я написал dll (как addin для Navision), который вызывает консольное приложение throu process.start(). Консольное приложение с использованием IKVM для использования pdfbox.net (v1.8.4).IKVM Не найден провайдер, если он запущен с process.start при использовании pdfbox.net

Если я запускаю консольное приложение напрямую (используя cmd или «start» в visual studio), все работает нормально. Если я запустить приложение консоли throu Process.Start() из класса libary (протестировано с модульным тестированием (MSTest)) или любой другой проект (тест-) я получаю исключение:

javax.xml.parsers.FactoryConfigurationError: Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl not found

Моего Process.Start из класса Lib:

string[] args = {pdfFilePath, zugferdFilePath}; 
ProcessStartInfo processStartInfo = new ProcessStartInfo 
{ 
    FileName = exeFile, 
    Arguments = string.Join(" ", args), 
    WorkingDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), 
    ErrorDialog = true, 
    RedirectStandardError = true, 
    RedirectStandardOutput = true, 
    UseShellExecute = false 
}; 
Process process = Process.Start(processStartInfo); 

Подробности об исключении: сообщение:

Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl not found

Источник:

IKVM.OpenJDK.XML.API

StackTrace:

((java.lang.Throwable)_exception).StackTrace " bei javax.xml.parsers.DocumentBuilderFactory.newInstance() bei Mustang.ZUGFeRDImporter.parse() in C:\GIT\KCorp.NAV.Zugferd\KCorp.Nav.Zugferd.Split\Mustang\ZUGFeRDImport.cs:Zeile 124. bei KCorp.Nav.Zugferd.Split.Zaumzeug.showZUGFeRD(String filepath,String xmlFilePath) in C:\GIT\KCorp.NAV.Zugferd\KCorp.Nav.Zugferd.Split\Zaumzeug.cs:Zeile 30."

ли кто-нибудь есть идеи, как это исправить?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

благодарит заранее.

ответ

0

Это проблема загрузчика классов. Попробуйте добавить следующее перед строкой, которую вы называете завод:

var s = new [email protected](); 

Это заставит узел, чтобы загрузить и работал для меня каждый раз, когда я столкнулся с этой проблемой.

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

  • Нет связанных вопросов^_^