2011-05-20 35 views
0

Iam試圖開發一個Web應用程序,其中當單擊按鈕時,必須使用一些命令行參數來啓動servlet。這是servlet類運行corba客戶端所必需的。 servlet類無法調用CORBA客戶沒有這些命令行參數「-ORBInitialHost xxx.xx.xx.xx -ORBInitialPort 1050」,其中x是IP地址執行程序運行正常,當我執行它與下面的命令「java HelloClient -ORBInitialHost xxx.xx.xx.xx -ORBInitialPort 1050在servlet中傳遞運行時參數

回答

0

您需要創建ORB和傳遞這些參數如Java Properties。喜歡的東西:

... 
Properties props = new Properties(); 
props.add("org.omg.CORBA.ORBInitialHost", httpServletRequest.getParameter("initialHost")); 
props.add("org.omg.CORBA.ORBInitialPort", httpServletRequest.getParameter("initialPort")); 
ORB orb = ORB.init(null, props); 
// do some work with your ORB 
... 
0

一個獨立的Java應用程序只是將它們傳遞作爲請求參數,然後在調用corba客戶端時使用它們。

例如,URL爲http://domain.com/corbaServlet?param1=foo&param2=bar然後

public void doGet(..) { 
    String param1 = request.getParameter("param1"); 
    String param2 = request.getParameter("param2"); 
    startCorbaClient(param1, param2); 
} 
+0

但是我所提到的參數是命令行參數,JVM將如何知道這些,如果他們爲正式參數傳遞給方法。如果你在獨立應用程序的情況下可以注意到第二個命令。 – TechnocraT 2011-05-20 12:00:56

+0

你說你從servlet啓動corba客戶端。所以我認爲你正在運行Runtime.exec(..)。如果不是,請澄清你的情況。 – Bozho 2011-05-20 12:12:24

0

你能爲系統參數,將它們添加到應用程序服務器啓動腳本和使用system.getProperty在servlet檢索它們()?

java -Dorb.host=xxx.xx.xx.xxx -Dorb.port=1050 application_server_startup.jar 

,並在你的servlet的init()方法

orbHost = System.getProperty("orb.host"); 
orbPort = System.getProperty("orb.port");