Мне трудно понять, что именно вы пытаетесь сделать, но у меня есть опыт работы с javaEventing, и я постараюсь помочь вам как можно лучше.Уилл Хартунг прав, вам нужно где-то создавать свои события.Поэтому, если я вас правильно понимаю, вы хотите запустить ваше java-приложение из командной строки, затем вы хотите подключиться к базе данных и посмотреть, какая команда будет вставлена, а при вставке вы захотите создать событие.Это правильно?
В этом случае вам, вероятно, потребуется выполнить некоторый опрос базы данных, поскольку обычные базы данных не могут уведомлять ваше приложение, когда выполняется какое-либо условие.Это означает, что вам, вероятно, понадобится условие while {}, в котором вы выполняете запросы к базе данных, ожидая результирующий набор, содержащий искомую команду.Когда найдено, вы можете создать событие, подобное этому:
Class ReceivedCommandEvent extends EventManager.EventObject {} // define your event
while (command==null) {
command = pollDataBaseForCommand(); //poll your databae for commands
waitForSomePeriod();
}
EventManager.triggerEvent(this, new ReceivedCommandEvent(command)); //trigger your event, with the command as payload
Теперь любые другие потоки, прослушивающие ваше событие (ReceivedCommandEvent), получат событие и смогут извлечь команду из полезной нагрузки события.
Теперь возникает вопрос: почему вы все равно хотите использовать базу данных для передачи команд?Вы просто используете его для связи между приложениями?Если ваше другое приложение также написано на Java, вы можете рассмотреть возможность использования распределенных событий, позволяющих одному java-приложению отправлять события java-приложениям, работающим в других JVM, на других машинах в сети.Возможно, вы захотите взглянуть на JED (http://code.google.com/p/jed-java-event-distribution),, который делает именно это.
Надеюсь, это поможет, Боб