我试图开发一个Web应用程序,当单击一个按钮时,必须使用一些命令行参数启动servlet。这是必需的,因为servlet类运行corba客户端。如果没有这些命令行参数“-ORBInitialHost xxx.xx.xx.xx -ORBInitialPort 1050
”,则servlet类无法调用corba客户端,其中x是ip地址。当我使用以下命令“java HelloClient -ORBInitialHost xxx.xx.xx.xx -ORBInitialPort 1050
执行它作为独立的Java应用程序时,程序运行正常“
答案 0 :(得分:0)
只需将它们作为请求参数传递,然后在调用corba客户端时使用它们。
例如,网址为http://domain.com/corbaServlet?param1=foo¶m2=bar
,然后是
public void doGet(..) {
String param1 = request.getParameter("param1");
String param2 = request.getParameter("param2");
startCorbaClient(param1, param2);
}
答案 1 :(得分: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");
答案 2 :(得分: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
...