передать аргументы времени выполнения в сервлете - PullRequest
0 голосов
/ 20 мая 2011

Я пытаюсь разработать веб-приложение, в котором при нажатии кнопки сервлет должен запускаться с некоторыми аргументами командной строки. Это необходимо, так как класс сервлета запускает клиент corba. Класс сервлета не может вызвать клиент corba без этих аргументов командной строки "-ORBInitialHost xxx.xx.xx.xx -ORBInitialPort 1050", где x - это ip-адрес. Программа работает нормально, когда я выполняю его как отдельное приложение java со следующей командой "java HelloClient -ORBInitialHost xxx.xx.xx.xx -ORBInitialPort 1050"

Ответы [ 3 ]

0 голосов
/ 20 мая 2011

Не могли бы вы добавить их в качестве системных параметров в сценарии запуска сервера приложений и получить их в сервлете с помощью system.getProperty ()?

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

и в вашем сервлете метод init ()

orbHost = System.getProperty("orb.host");
orbPort = System.getProperty("orb.port");
0 голосов
/ 20 мая 2011

Вам необходимо создать 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 голосов
/ 20 мая 2011

Просто передайте их в качестве параметров запроса и затем используйте их при вызове клиента 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);
}
...