1

我已经使用 IKVM 将用 Java 编写的 api 转换为 .net dll,到目前为止一切都很好。

它基本上在幕后使用 xml 来访问一些 Web 服务。该 api 是第 3 方,我无权访问源代码。该api使用Castor(我相信)将xml绑定到对象中。

然而,当我开始使用 api 的一些更有用的部分时,我遇到了 castor 的一个问题。我的具体错误是:

“嵌套错误:org.exolab.castor.mapping.MappingException:找不到类......”

提到的类是 api 的一部分。从网上搜索来看,castor似乎无法访问该类,因为它与 castor 位于单独的程序集中。

我的问题是我对 Java 中的类加载器了解得不够多,而且可能对 IKVM 了解得不够多,无法解决这个问题。

有没有人将 IKVM 与 Castor(或其他可能在 Java 类上使用反射的库)一起使用,并且之前遇到过这个问题?

4

1 回答 1

2

好吧,我很惊讶没有人对此有任何答案,所以我将我的问题发布到了 ikvm 邮件列表,并得到了回复。

答案确实与我使用的 Castor 库和第 3 方 api 代码的分离有关。

我使用的解决方案是添加选项:

-classloader:ikvm.runtime.AppDomainAssemblyClassLoader

使用 ikvmc 编译 Castor 时。

这允许 Castor 与第 3 部分 api 进行通信,并允许我从 Web 服务中获取报告。

于 2009-05-21T11:39:28.327 回答