2010-07-01 68 views
0

最近,我被要求爲我的公司編寫Java應用程序。我是一位經驗豐富的.Net開發人員,所以這對我來說都是新的領域。從Java控制檯應用程序和ASP.NET應用程序中調用Java程序

我的任務是生產出有幾個高級別任務,如發票應用程序:

  • 構建一張發票
  • 建立所有發票

我公司希望能夠調用這些任務來自java控制檯應用程序 - 傳入相關命令和參數來調用任務。他們還希望能夠從ASP.NET應用程序中調用相同的代碼。

因此,我的第一個想法是在Java中使用Web服務。

我的問題是:我可以從Java控制檯應用程序和ASP.NET應用程序中使用Java Web服務嗎?或者也許有更好的選擇。

任何指針,讓我研究在正確的方向,將不勝感激。

謝謝。

回答

0

簡單的答案是 - 是的。 Java有用於定義Web服務並部署它們的庫,並且Java和.NET都有用於生成Web服務客戶端的實用程序。這並不是說它會很容易!

如果我是你,我將調查使用JAX-RS實現創建REST服務(我最喜歡的是RestEASY)。這將允許您在沒有SOAP的情況下創建「Web服務」,即http://server/invoices/1可能會返回

<invoice> 
<items> 
    <item>apple</item> 
    <item>banana</item> 
<items> 
<customer>robert</customer> 
<amount>5.00</amount> 
</invoice> 

那麼它應該很容易解釋任何語言。無論哪種方式,它將是一個陡峭的學習曲線。 Java和.NET之間的主要區別在於,儘管.NET中內置了很多功能,但在Java中它遍佈整個生態系統,這很好,因爲它提供了多種功能,但定位功能可能需要更長的時間。

1

「我的公司希望能夠從Java控制檯應用程序調用這些任務 - 傳遞相關命令和參數來調用任務,他們也希望能夠從ASP調用相同的代碼。 NET應用程序「。

我不知道你問什麼,但我認爲答案很簡單,以確保您的應用程序有一個入口點方法,以便它可以作爲一個命令行應用程序運行。你需要一類,看起來像這樣的方法:

package foo.bar; 

public class Bazz { 

    ... 

    public static void main(String[] arguments) { 
     // parse the arguments and run the application 
     ... 
    } 
} 

main方法的簽名是關鍵:

  • 它必須是public static
  • 它的名稱必須爲main
  • 它必須加一個String[]自變量,而
  • 它必須有void返回類型。

    java -cp <YOUR_CLASS_PATH> foo.bar.Baz arg1 arg2 ... 
    

    這也可以通過用Java編寫的另一個應用程序完成的,(我想)從ASP.NET以及:

這個命令就可以從命令行如下運行。