2009-04-22 61 views
5

我負責編寫應用程序以連接到DoubleClick DART API並下載廣告素材。我可以使用C#連接到Java API嗎?

該API目前僅用於Java,但他們正在(最終)發佈SOAP版本。作爲一名C#開發人員,我想用C#編寫應用程序並訪問Java API,直到SOAP API可用。

我可以這樣做嗎?如果是這樣,怎麼樣?

如果不是,我將學習Java,編寫應用程序,然後在SOAP API可用時重做它,但這不是首選的行動方案。

感謝您的幫助。

回答

0

由於我可以推薦以RESTful方式編寫Web服務,因此(或與)SOAP ?好處將是您可能希望將來使用您的服務的任何語言之間的互操作性,而不僅僅是那些可以基於WSDL生成代碼的語言。只是一個想法。

1

是的,你可以做到這一點,我們不得不做一些非常相似的事情。

Doubleclick API是基於Java的,本質上是詢問數據庫的方法集合。

你需要做的是使用類似於Axis2的方式將這些方法包裝到Web服務中,然後將Web服務部署到Tomcat服務器(所有這些都是開源的)。這暴露了Web服務,然後你可以從任何你喜歡的地方調用Web服務。

所以在你的情況下,你需要在Visual Studio中添加一個Web服務引用,然後你的C#類將調用調用Doubleclick Java方法的Web服務。

實際的Java代碼是最小的(約10行),因爲它只是一個調用,然後格式化輸出。部署代碼比編寫代碼需要更長的時間!

我們的Java開發環境是Eclipse,我在博客上發表博文here

0

我會說使用J#圖層可能是一個不錯的選擇。我只用過一次,但它爲我做了竅門。

3

IKVM.NET可能是您的解決方案。它是將Java字節碼轉換爲.NET IL的Java虛擬機。

你可以做的是將使用ikvmc.exe的Java API(作爲jar或源文件提供)編譯爲.NET程序集,然後從C#項目中引用該程序集。

IKVM確實對Java用戶界面(AWT)提供了有限的支持,但由於它是一個API,所以這不應該是相關的。

我還沒有嘗試過這個,所以我不能保證這真的有效。

http://weblog.ikvm.net/story.aspx/faq

+0

我轉換使用IKVMC的jar文件,並能夠儘快谷歌工程獲准進入開始使用API​​。現在只需瀏覽文檔以瞭解如何執行我所需的操作。 – Matthew 2011-06-10 20:22:05

0

實際上,我們用這樣的方式略有不同去了。

  1. C#web服務現在使用javaw.exe(使用Process)調用Java類並傳入一個id(GUID)。
  2. GUID用作由java類編寫的XML文件的文件名。
  3. 如果進程(javaw)無誤地結束,則Web服務會打開(GUID).xml文件並檢索數據。

雖然這不是最佳方法,但它在短期內適用於此流程,長期而言,當SOAP解決方案變爲可用時,Web服務可輕鬆更新。

相關問題