Способ вызова в EJB на jboss запустить [дубликат] -- java поле с участием jboss поле с участием jakarta-ee поле с участием ejb поле с участием lifecycle пол Связанный проблема

Call method in EJB on JBoss startup [duplicate]


12
vote

проблема

русский
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»>
Этот вопрос уже есть ответы здесь :
ragear / auto loading ejb / load ejb при запуске ( на jboss) (2 ответа)
Закрыто 4 года назад .

Я ищу точку входа в EJB, развернутую на jboss.

Серлеты имеют тег load-on-startup в его <код> web.xml .

Я ищу аналогичный <код> init() функциональность для EJB.

Английский оригинал

I'm looking for an entry point in an EJB deployed on JBoss.

Servlets have the load-on-startup tag to use in its web.xml.

I'm searching for similar init() functionality for an EJB.

</div
              

Список ответов

25
 
vote

Это не было для EJB до 3,1. С EJB 3.1 вы можете использовать Singleton Bean для моделирования, чтобы:

from Запуск / выключение приложения / Выполнение выводов :

 <код>    @Startup    @Singleton    public class FooBean {         @PostConstruct         void atStartup() { ... }         @PreDestroy        void atShutdown() { ... }     }   

В противном случае вам нужно будет полагаться на старый добрый трюк, чтобы использовать <код> ServletContextInitializer .

Есть некоторое расширение, специфичное приложение, например, Слушатель жизненного цикла для Glassfish. Может быть, есть такая вещь для JBoss.

Но если бы я был тобой, я бы попытался полагаться на стандартные функции как можно больше. Проблема с нестандартным расширением заключается в том, что вы никогда не знаете точно, что можно сделать или нет, например, E.g. Можете ли вы начать транзакцию или нет, и т. Д.

 

That didn't exist for EJB until 3.1. With EJB 3.1 you can use a singleton bean to simulate that:

From Application Startup / Shutdown Callbacks:

   @Startup    @Singleton    public class FooBean {         @PostConstruct         void atStartup() { ... }         @PreDestroy        void atShutdown() { ... }     } 

Otherwise, you will need to rely on the good old trick to use a ServletContextInitializer.

There are some application-specific extension, e.g. lifecycle listener for Glassfish. Maybe there's such a thing for JBoss.

But if I were you I would try to rely on standard features as much as possible. The problem with non-standard extension is that you never know exactly what can be done or not, e.g. can you start transaction or not, etc.

</div
 
 
     
     
4
 
vote

Эта статья описывает семь различных способов призывающей функциональности на запуске сервера. Не все будет работать с jboss, хотя.

Семь способов получить все Отказ Java EE Startup Классы с Glassfish и Weblogic

 

This article describes seven different ways of invoking functionality at server startup. Not all will work with JBoss though.

Seven ways to get things started. Java EE Startup Classes with GlassFish and WebLogic

</div
 
 
4
 
vote

Если вы ориентируетесь на JBOSS как 5.1, и вы не против использования jboss ejb 3.0 Расширения , вы можете создать сервисный боб для загрузки вашего EJB. Если ваш сервис реализует интерфейс, аннотированный с @Management Annotation и объявляет метод с подписью <код> public void start() throws Exception , jboss позвонит этот метод, когда он начнет сервис. Затем вы можете позвонить посвященному <код> init() метода на EJB, который вы хотите инициализировать:

 <код> @Service public class BeanLauncher implements BeanLauncherManagement {     @EJB private SessionBeanLocal sessionBean;      @Override     public void start() throws Exception     {         sessionBean.init();     } }  @Management public interface BeanLauncherManagement {     public void start() throws Exception; }   

Больше информации об этом, включая дополнительные события жизненного цикла, можно найти здесь .

 

If you're targeting JBoss AS 5.1, and you don't mind using the JBoss EJB 3.0 Extensions, you can build a service bean to bootstrap your EJB. If your service implements an interface annotated with the @Management annotation and declares a method with the signature public void start() throws Exception, JBoss will call this method when it starts the service. You can then call a dedicated init() method on the EJB you want to initialize:

@Service public class BeanLauncher implements BeanLauncherManagement {     @EJB private SessionBeanLocal sessionBean;      @Override     public void start() throws Exception     {         sessionBean.init();     } }  @Management public interface BeanLauncherManagement {     public void start() throws Exception; } 

More information on this, including additional life-cycle events, can be found here.

</div
 
 
1
 
vote

Управляемые бобы могут быть использованы для выполнения некоторого процесса в запуске jboss, вам нужно добавить ввод этого управляемого компонента в файле конфигурации.

 

Managed Beans can be used to do some process at JBoss startup, you have to add entry of that managed bean in configuration file.

</div
 
 
1
 
vote

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

 <код> @Observer("org.jboss.seam.postInitialization")   
 

You should be able to add the following line to the top of the method you want to run at startup:

@Observer("org.jboss.seam.postInitialization") 
</div
 
 

Связанный проблема

0  ConstanaintValidator - сделать JPA сделать проверку после ввода  ( Constraintvalidator make jpa make the validation after input ) 
Можно ли сделать JPA проверить вход сразу после типов пользователей в чем-либо? Я использую EclipseLink. Я не хочу ждать, пока JPA сохраняется для проверк...

9  Phone Gam [Ошибка] CMD: Команда не удалась с помощью выхода кода Enoent  ( Phone gap error cmd command failed with exit code enoent ) 
Я пытаюсь получить разрыв на телефоне работать на Android, и моя команда выводит следующее: <код> phonegap build android [phonegap] detecting Android SDK en...

2  Как получить направление на кратчайший путь внешнего круга в Google Maps Android, когда мое текущее местоположение находится внутри 2 или более кругов?  ( How to get direction to the shortest path outside circle in google maps android ) 
Как получить направление к ближайшему расположению внешний круг, если голубые точки - текущее местоположение? 1 [ 1 и как отображать маркеры только во...

-1  SQL Server для моего SQL  ( Sql server to my sql ) 
У меня есть новый проект от моего учителя, чтобы преобразовать базу данных в другую. Как я могу преобразовать базу данных MS SQL в MySQL с помощью Java? ...

1  Eclipse IDE отключается часто  ( Eclipse ide shuts down frequently ) 
Я пытался использовать SDK SDK SDK 22.3.0-887826, чтобы узнать о Develeopment Android, однако IDE отключается часто. Это происходит много, но в основном при и...

1  WebView loaddatawithbaseurl java.lang.nullpointerexception  ( Webview loaddatawithbaseurl java lang nullpointerexception ) 
<код> //. . . public class MainActivity extends Activity { //. . . @Override protected void onCreate( Bundle savedInstanceState ) { //....

0  Этикетки для вершин с использованием библиотеки Юнга  ( Labels for vertices using jung library ) 
Я начал использовать библиотеку Юнга для моей визуализации графика. Основная проблема в настоящее время в настоящее время я не знаю, как установить этикетки /...

0  Создание ссылки IPC между плагинами APC Java и C #  ( Establishing ipc link between a java app and c based plugins ) 
У нас есть приложение Java, а также ряд плагинов C #, для других приложений (например, Excel), которые могут взаимодействовать с основным приложением. Слой св...

0  Basic Echo Server, отношения клиент-сервера  ( Basic echo server client server relationship ) 
Так как мой проект, который мне пришлось написать класс клиента и простой класс серверов, который будет эхом сообщение, написанным клиентом. По какой-то при...

1  Получить все идентификаторы элементов из Dynamodb Java с помощью dynamodbmapper  ( Retrieve all items ids from dynamodb java using dynamodbmapper ) 
Моя цель - получить идентификаторы всех предметов. Для этого я собираюсь использовать Java и Dynamodbmapper. Способ сделать это использовать сканирование . П...

0  Как удалить начальное нулевое значение?  ( How to remove initial null value ) 
Я загружаю файл и отображаю его как ссылку ... но изначально, когда я загружаю страницу, она отображает нулевое значение ... Я хочу удалить это нулевое значен...

0  Чехол для тестирования, где нуль должен быть возвращен с помощью RestController с Mockito Change  ( Testing case where null should be returned using restcontroller with mockito fai ) 
Я хочу проверить корпус NullPointexception, который следует бросить контроллер, который я проверяю, но я всегда получаю ошибку NullPointexception. Я пытаюсь п...

0  Java нерешенная переменная JPanel?  ( Java unresolved jpanel variable ) 
Почему не может <код> aniPanel быть разрешена в переменной. Я пробовал <код> AniPanel aniPanel = new AniPanel(); Но это не решает проблему. Я также по...

0  Выберите JVM при запуске зажигания  ( Select jvm when running spark job ) 
Как я могу пройти путь Java, чтобы выпить, чтобы выбрать JVM, который не по умолчанию (не в Java_home)? Мне не разрешено устанавливать какие-либо env vars в м...

105  Почему C # реализует методы как не виртуальные по умолчанию?  ( Why c sharp implements methods as non virtual by default ) 
В отличие от Java, почему C # методы лечения как не виртуальные функции по умолчанию? Скорее всего, это проблема производительности, а не на других возможных ...

Связанный проблема

0  ConstanaintValidator - сделать JPA сделать проверку после ввода 
9  Phone Gam [Ошибка] CMD: Команда не удалась с помощью выхода кода Enoent 
2  Как получить направление на кратчайший путь внешнего круга в Google Maps Android, когда мое текущее местоположение находится внутри 2 или более кругов? 
-1  SQL Server для моего SQL 
1  Eclipse IDE отключается часто 
1  WebView loaddatawithbaseurl java.lang.nullpointerexception 
0  Этикетки для вершин с использованием библиотеки Юнга 
0  Создание ссылки IPC между плагинами APC Java и C # 
0  Basic Echo Server, отношения клиент-сервера 
1  Получить все идентификаторы элементов из Dynamodb Java с помощью dynamodbmapper 
0  Как удалить начальное нулевое значение? 
0  Чехол для тестирования, где нуль должен быть возвращен с помощью RestController с Mockito Change 
0  Java нерешенная переменная JPanel? 
0  Выберите JVM при запуске зажигания 
105  Почему C # реализует методы как не виртуальные по умолчанию?