2010-05-24 11 views
6

Necesito llamar a una API que está completamente en Java desde una base de código .NET existente. ¿Cuál es el mejor enfoque aquí? ¿Escribir un servicio web en Java que básicamente solo reenvía las llamadas a la API o ir con algo como JNI4NET?Llamar a una API de Java desde .NET: mejor enfoque

+2

Esto es gracioso, la pregunta inversa (http://stackoverflow.com/questions/2895434/access-net-dlls-method-using-java- código) se le preguntó menos de cuatro minutos antes (por otra persona). Divertido viejo mundo. –

Respuesta

3

Puede usar jni4net, que es un puente JNI entre .Net y Java. (Apoyos a Darin Dimitrov para providing this info en una respuesta a otra pregunta.)

+0

Ojalá pudiera darle la respuesta a Darin Dimitrov, pero en su lugar tendré que dártela :) ¡Terminé yendo con IKVM para la tarea, y después de mucho trabajo lo conseguí funcionando como un amuleto! – Ciddan

+1

@Ciddan: Sí. Incluso publiqué un enlace a esta pregunta en la que saqué la información, pero él no mordió. :-) Tenemos que conformarnos con que ambos lo votemos, ¿eh? –

1

Eso depende. Si se trata de una aplicación de escritorio, puede usar JNI. Pero para una aplicación basada en web, debe usar los servicios web.

+0

El caso de uso es que llamaré a la API java desde un servicio WCF alojado en WAS. ¿Impide eso el enfoque JNI? – Ciddan

+0

Puede usar JNI en este caso. –

0

Si se trata de una aplicación basada en web, también se puede ver utilizando un objeto proxy de RMI en el lado del servidor Java y IIOP.NET en el lado del cliente .NET.

Será mucho más rápido que los servicios web.