Кастор и ИКВМ

Я преобразовал API, написанный на Java, в.net dll, используя IKVM, и до сих пор это было хорошо.

Он в основном использует xml за кулисами для доступа к некоторым веб-сервисам. API сторонний, и у меня нет доступа к исходному коду. API использует Castor для (я полагаю) связывания XML в объекты.

Однако, когда я начал использовать некоторые из наиболее полезных частей API, у меня возникла проблема с Castor. Моя конкретная ошибка:

"Вложенная ошибка: org.exolab.castor.mapping.MappingException: не удалось найти класс..."

Упомянутый класс является частью API. Из веб-поиска кажется, что castor не может получить доступ к классу, потому что он находится в отдельной сборке от castor.

Моя проблема в том, что я не совсем понимаю о загрузчиках классов в Java и, вероятно, недостаточно разбираюсь в IKVM, чтобы разобраться в этом.

Кто-нибудь использовал IKVM с Castor (или какую-то другую библиотеку, которая, возможно, использует рефлексию классов Java), и сталкивался с этой проблемой раньше?

1 ответ

Решение

Ну, я удивлен, что никто не ответил на это, поэтому я отправил свой вопрос в список рассылки ikvm и получил ответ.

Ответ действительно связан с разделением библиотеки Castor и стороннего API-кода, который я использовал.

Решение, которое я использовал, было добавить опцию:

-classloader:ikvm.runtime.AppDomainAssemblyClassLoader

при компиляции Castor с ikvmc.

Это позволило Кастору общаться с 3-й частью API и позволило мне получить отчет из веб-службы.

Другие вопросы по тегам