[JAVA] [Apache Tomcat] L'histoire de l'utilisation d'Apache OpenWebBeans pour activer CDI

Aperçu

Rendre CDI disponible dans Apache Tomcat est un problème pour écrire et configurer pom.xml. Donc, cette fois, je vais utiliser Apache OpenWebBeans pour faciliter l'utilisation de CDI.

Conditions préalables

  1. Vous pouvez utiliser la commande java
  2. Git peut être utilisé
  3. l'éclipse peut être utilisée (si possible)

structure globale

/Destination de travail/
  ├ Tomcat/
  │  ├ apache-tomcat-9.0.22/
  │  │  ├ bin/
  │  │  │  ├ startup.bat
  │  │  │  └ startup.sh
  │  │  └ conf/
  │  │     ├ Catalina/
  │  │     │  └ localhost
  │  │     │     └ Sample.xml
  │  │     ├ context.xml
  │  │     └ logging.properties
  │  ├ current -> (/Destination de travail/Tomcat/apache-tomcat-9.0.22/)
  │  ├ openwebbeans-distribution-2.0.9
  │  │  ├ install_owb_tomcat7.bat
  │  │  └ install_owb_tomcat7.sh
  │  ├ apache-tomcat-9.0.22
  │  └ openwebbeans-distribution-2.0.9-binary.zip
  └ quita
     └ cdi-sample
        └ WebContent
          └ WEB-INF
            └ beanse.xml

Procédure de travail

  1. Créez un répertoire pour ce travail. (Ci-après, destination de travail)

  2. Créez un répertoire Tomcat à votre destination.

  3. Téléchargez Apache Tomcat dans le répertoire Tomcat et décompressez-le.

  4. Créez un lien actuel en tenant compte du changement de version.

    #Pour les fenêtres
    mklink /j current apache-tomcat-9.0.22
    
    #Pour Linux
    ln -s apache-tomcat-9.0.22 ./current
    
  5. [Implémenté pour Windows] Modifiez conf / logging.properties dans Apache Tomcat pour éviter que la console ne soit déformée.

    #Près de la ligne 51
    #Changer avant
    java.util.logging.ConsoleHandler.encoding = UTF-8
    #Après le changement
    java.util.logging.ConsoleHandler.encoding = SJIS
    
  6. Téléchargez Apache OpenWebBeans dans le répertoire Tomcat et décompressez-le.

  7. Exécutez install_owb_tomcat7 dans Apache OpenWebBeans

    #Pour les fenêtres
    install_owb_tomcat7.bat ..\current
    
    #Pour Linux
    install_owb_tomcat7.sh ../current
    
  8. [Implémenté pour Windows] Ajoutez une balise dans la balise "" de conf / context.xml dans Apache Tomcat, et procédez comme suit.

    <Context>
    
        <!-- Default set of monitored resources. If one of these changes, the    -->
        <!-- web application will be reloaded.                                   -->
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
        <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
        <!--↓ Tag ajouté-->
        <Listener className="org.apache.webbeans.web.tomcat7.ContextLifecycleListener"/>
        <!-- Uncomment this to disable session persistence across Tomcat restarts -->
        <!--
        <Manager pathname="" />
        -->
    </Context>
    
  9. Clonez le Git suivant vers la destination de travail

    • https://gitlab.com/P488/qiita.git
  10. Créez un fichier xml avec le contenu suivant dans conf / Catalina / localhost dans Apache Tomcat.

``` xml:Sample.xml
<Context path="/Sample" reloadable="true" docBase="/Destination de travail/quita/cdi-sample/WebContent">
</Context>
```
  1. Exécutez le démarrage dans le bac Apache Tomcat
``` sh
#Pour les fenêtres
startup.bat

#Pour Linux
startup.sh
```
  1. Accédez à localhost: 8080 / Sample / SampleServlet et confirmez que "Served at:" est affiché.

Impressions / Résumé

Nous avons maintenant utilisé Apache OpenWebBeans pour permettre l'utilisation de CDI avec Apache Tomcat. Dans le cas de Windows, c'est un peu gênant car cela nécessite un travail manuel, mais je me suis demandé s'il serait facile d'utiliser CDI en exécutant bat / sh. La source utilisée cette fois-ci est créée avec eclipse, donc si vous le pouvez, vous voudrez peut-être jouer avec. (Lors de l'utilisation avec eclipse, changez le répertoire d'installation de Tomcat en / work / Tomcat / current depuis Window-> Settings-> Server-> Runtime Environment-> Tomcat9 (Java11) -> Edit)

Veuillez commenter si vous avez des erreurs ou des problèmes.

Recommended Posts

[Apache Tomcat] L'histoire de l'utilisation d'Apache OpenWebBeans pour activer CDI
Comment télécharger une ancienne version d'Apache Tomcat
L'histoire de l'introduction de la communication Ajax à Ruby
L'histoire de la montée de la série Spring Boot 1.5 à la série 2.1
L'histoire de l'ajout du dernier Node.js à DockerFile
L'histoire de la création de Dr.Orchid avec LINE BOT
L'histoire de la montée de Spring Boot de la série 1.5 à la série 2.1 part2
20190803_Java & k8s sur Azure L'histoire d'aller au festival
Une histoire sur la lutte contre les erreurs Ubuntu 0x80370114 et 0x80000000 pour activer Docker Desktop avec WSL2 dans Windows10 Home
L'histoire de Collectors.groupingBy que je veux garder pour la postérité
Comment obtenir le contenu de la carte à l'aide du mémorandum d'instructions
L'histoire de toString () commençant par le passage d'un tableau à System.out.println
L'histoire de la création d'un jeu d'Othello de type communication avec Scala.
[Édition Java] Histoire de la sérialisation
L'histoire que je voulais développer Zip
Une histoire à laquelle j'étais accro à deux reprises avec le paramètre de démarrage automatique de Tomcat 8 sur CentOS 8
Comment faire fonctionner IGV en utilisant la communication par socket, et l'histoire de la création d'un Ruby Gem en utilisant cette méthode
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Une histoire à laquelle j'étais accro lors du test de l'API à l'aide de MockMVC
L'histoire du passage d'Amazon RDS pour MySQL à Amazon Aurora Serverless
L'histoire de la sortie de l'application Android sur le Play Store pour la première fois.
J'ai mesuré les performances de la grille de données en mémoire Apache Ignite à l'aide de Yardstick.
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
Traitement itératif de Ruby en utilisant chaque méthode (trouver la somme de 1 à 10)
L'histoire de la rencontre avec l'annotation personnalisée Spring
Essayez d'utiliser || au lieu de l'opérateur ternaire
Le secret du succès d'IntelliJ IDEA
L'histoire de la mise à jour du Docker Container de Sonar Qube
Comment déterminer le nombre de parallèles
L'histoire de RxJava souffrant de NoSuchElementException
Comment trier une liste de SelectItems
Utiliser SSIServlet avec Tomcat intégré SpringBoot 2.2.4
Sortie du livre "Introduction à Java"
Créez un RestAPI à l'aide de wicketstuff-restannotations d'Apache Wicket
L'histoire de l'écriture de Java dans Emacs
L'histoire de l'utilisation intentionnelle de Try catch pour la première fois de ma vie
Je veux obtenir la valeur de Cell de manière transparente quel que soit CellType (Apache POI)
Jusqu'au lancement d'un conteneur Docker construit avec RedHat Quarkus
[Java] Comment obtenir facilement la plus longue chaîne de caractères d'ArrayList à l'aide de stream
Faites attention à la vérification des limites de la valeur d'entrée lors de l'utilisation du type float
Envoyez des notifications à Slack avec la version gratuite de sentry (en utilisant lambda)