2009-05-19 3 views
1

Java로 작성된 API를 IKVM을 사용하여 .net dll로 변환했으며 지금까지는 좋았습니다.Castor and IKVM

기본적으로 xml을 사용하여 일부 웹 서비스에 액세스합니다. API는 제 3 자이며, 소스 코드에 액세스 할 수 없습니다. API는 Castor를 사용하여 xml을 객체에 바인딩합니다.

그러나 API의 더 유용한 부분을 사용하기 시작했을 때, 나는 캐스터에 문제가 생겼습니다. "... 클래스를 찾을 수 없습니다 중첩 된 오류 : org.exolab.castor.mapping.MappingException"

언급 된 클래스는 API의 일부입니다

: 내 특정 오류이다. 웹을 샅샅이 조사 할 때 캐스터가 캐스터와 별도의 어셈블리에 있기 때문에 캐스터가 클래스에 액세스 할 수 없다는 것을 seems에서 알 수 있습니다.

제 문제는 Java에서 Classloaders에 대해 충분히 이해하지 못하고 있으며이를 해결하기 위해 IKVM에 대해 충분히 알지 못한다는 것입니다.

Castor (또는 Java 클래스에서 리플렉션을 사용하는 다른 라이브러리)와 함께 IKVM을 사용하는 사람이 있습니까? 이전에이 문제가 발생 했습니까?

답변

2

글쎄, 아무도이 질문에 답을 얻지 못했기 때문에 나는 ikvm 메일 링리스트에 질문을 올렸고 회신을 받았다.

실제로 해답은 Castor 라이브러리와 내가 사용했던 타사 API 코드를 분리 한 것과 관련이 있습니다.

-classloader:ikvm.runtime.AppDomainAssemblyClassLoader 

하는 ikvmc 캐스터를 컴파일 : 내가 사용

이 솔루션은 옵션을 추가했다.

이렇게하면 Castor가 3 부 API와 통신 할 수있게되어 웹 서비스에서 보고서를 가져올 수 있습니다.

관련 문제