2009-08-12 6 views
3

Как настроить несколько точек входа в банке клиента приложения?Множественная точка входа (основной класс) для контейнера клиента приложения

Я использую сервер приложений Glassfish. Я могу захватить клиента с помощью

asadmin get-client-stubs --appname APPLICATION_NAME . 

В настоящее время я могу запустить MainClass по умолчанию, я указанный в MANIFEST.MF. Тем не менее, я хочу иметь возможность указать другой основной класс во время выполнения.

т.е.

appclient -client MYJAR.jar -mainclass com.mystuff.Main1 
and 
appclient -client MYJAR.jar -mainclass com.mystuff.Main2 

Оба Main1 и Main2 имеют "государственной статической силы основных" точек входа.

Если я указать MainClass, что не в MANIFEST.MF, я получаю следующее исключение:

Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: Could not locate an embedded app client matching the main class name 

мне нужно внести какие-либо изменения, чтобы иметь эталонные AppClient другие mainclasses делать?

ответ

1

http://forums.java.net/jive/thread.jspa?threadID=65549&tstart=0 < - я повторно отправил тот же вопрос здесь, и кто-то дал ответ ...

Привет.

Клиентский контейнер приложения GlassFish использует параметр -mainclass для различения нескольких клиентов, упакованных в один и тот же EAR, поэтому во время запуска пользователь может выбрать, какой из этих нескольких клиентов был упакован вместе для запуска. Как вы выяснили, это не позволяет пользователю переопределять намерение разработчика как основного класса для работы внутри данного клиента.

Вы могли бы сделать то, что вы хотите, используя альтернативный синтаксис AppClient доступный в версии 3:

http://docs.sun.com/app/docs/doc/820-7701/appclient-1m?a=view

Для v2 вы могли бы, конечно, написать один основной класс, чтобы принять аргумент, который определяет класс для запуска и затем динамически загружать этот класс и вызывать его основной метод.

-Тим.

 Смежные вопросы

  • Нет связанных вопросов^_^