[JAVA] [Apache Tomcat] Die Geschichte der Verwendung von Apache OpenWebBeans zum Aktivieren von CDI

Überblick

Das Bereitstellen von CDI in Apache Tomcat ist mühsam, indem Sie pom.xml schreiben und konfigurieren. Dieses Mal werde ich Apache OpenWebBeans verwenden, um die Verwendung von CDI zu vereinfachen.

Voraussetzungen

  1. Sie können den Java-Befehl verwenden
  2. Git kann verwendet werden
  3. Eclipse kann verwendet werden (wenn möglich)

Gesamtstruktur

/Arbeitsziel/
  ├ Tomcat/
  │  ├ apache-tomcat-9.0.22/
  │  │  ├ bin/
  │  │  │  ├ startup.bat
  │  │  │  └ startup.sh
  │  │  └ conf/
  │  │     ├ Catalina/
  │  │     │  └ localhost
  │  │     │     └ Sample.xml
  │  │     ├ context.xml
  │  │     └ logging.properties
  │  ├ current -> (/Arbeitsziel/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

Arbeitsablauf

  1. Erstellen Sie ein Verzeichnis für diese Arbeit. (Im Folgenden Arbeitsziel)

  2. Erstellen Sie ein Tomcat-Verzeichnis an Ihrem Ziel.

  3. Laden Sie Apache Tomcat in das Tomcat-Verzeichnis herunter und entpacken Sie es.

  4. Erstellen Sie einen aktuellen Link unter Berücksichtigung der Versionsänderung.

    #Für Windows
    mklink /j current apache-tomcat-9.0.22
    
    #Für Linux
    ln -s apache-tomcat-9.0.22 ./current
    
  5. [Für Windows implementiert] Ändern Sie conf / logging.properties in Apache Tomcat, um zu verhindern, dass die Konsole verstümmelt wird.

    #In der Nähe der Linie 51
    #Vorher ändern
    java.util.logging.ConsoleHandler.encoding = UTF-8
    #Nach der veränderung
    java.util.logging.ConsoleHandler.encoding = SJIS
    
  6. Laden Sie Apache OpenWebBeans in das Tomcat-Verzeichnis herunter und entpacken Sie es.

  7. Führen Sie install_owb_tomcat7 in Apache OpenWebBeans aus

    #Für Windows
    install_owb_tomcat7.bat ..\current
    
    #Für Linux
    install_owb_tomcat7.sh ../current
    
  8. [Für Windows implementiert] Fügen Sie ein Tag in das Tag "" von conf / context.xml in Apache Tomcat ein und gehen Sie wie folgt vor.

    <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 hinzugefügt-->
        <Listener className="org.apache.webbeans.web.tomcat7.ContextLifecycleListener"/>
        <!-- Uncomment this to disable session persistence across Tomcat restarts -->
        <!--
        <Manager pathname="" />
        -->
    </Context>
    
  9. Klonen Sie den folgenden Git an Ihr Ziel

    • https://gitlab.com/P488/qiita.git
  10. Erstellen Sie eine XML mit dem folgenden Inhalt in conf / Catalina / localhost in Apache Tomcat.

``` xml:Sample.xml
<Context path="/Sample" reloadable="true" docBase="/Arbeitsziel/quita/cdi-sample/WebContent">
</Context>
```
  1. Führen Sie den Start im Apache Tomcat-Bin aus
``` sh
#Für Windows
startup.bat

#Für Linux
startup.sh
```
  1. Greifen Sie auf localhost: 8080 / Sample / SampleServlet zu und bestätigen Sie, dass "Served at:" ausgegeben wird.

Impressionen / Zusammenfassung

Wir haben jetzt Apache OpenWebBeans verwendet, um die Verwendung von CDI mit Apache Tomcat zu ermöglichen. Im Fall von Windows ist es ein wenig ärgerlich, weil es manuelle Arbeit erfordert, aber ich habe mich gefragt, ob es einfach wäre, CDI durch Ausführen von bat / sh zu verwenden. Die diesmal verwendete Quelle wird mit Eclipse erstellt. Wenn Sie also können, möchten Sie möglicherweise damit herumspielen. (Ändern Sie bei Verwendung mit Eclipse das Tomcat-Installationsverzeichnis unter Fenster-> Einstellungen-> Server-> Laufzeitumgebung-> Tomcat9 (Java11) -> Bearbeiten in / Work / Tomcat / current.)

Bitte kommentieren Sie, wenn Sie Fehler oder Probleme haben.

Recommended Posts

[Apache Tomcat] Die Geschichte der Verwendung von Apache OpenWebBeans zum Aktivieren von CDI
So laden Sie eine ältere Version von Apache Tomcat herunter
Die Geschichte der Einführung der Ajax-Kommunikation in Ruby
Die Geschichte der Erhöhung der Spring Boot 1.5-Serie auf die 2.1-Serie
Die Geschichte des Hinzufügens der neuesten Node.js zu DockerFile
Die Geschichte, Dr. Orchid mit LINE BOT zu machen
Die Geschichte der Erhöhung von Spring Boot von 1.5 auf 2.1 Serie Teil2
20190803_Java & k8s on Azure Die Geschichte vom Festivalbesuch
Eine Geschichte über die Bekämpfung der Ubuntu-Fehler 0x80370114 und 0x80000000, um den Docker-Desktop mit wsl2 in Windows 10 Home zu aktivieren
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
Die Geschichte von toString () beginnt mit der Übergabe eines Arrays an System.out.println
Die Geschichte eines Othello-Spiels vom Kommunikationstyp mit Scala.
[Java Edition] Geschichte der Serialisierung
Eine Geschichte, der ich mit der automatischen Starteinstellung von Tomcat 8 unter CentOS 8 zweimal verfallen war
Wie man IGV mit Socket-Kommunikation bedient und wie man einen Ruby Gem mit dieser Methode herstellt
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Die Geschichte des Wechsels von Amazon RDS für MySQL zu Amazon Aurora Serverless
Die Geschichte der ersten Veröffentlichung der Android-App im Play Store.
Ich habe die Leistung des speicherinternen Datengitters Apache Ignite mit Yardstick gemessen.
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
Iterative Verarbeitung von Ruby mit jeder Methode (finde die Summe von 1 bis 10)
Die Geschichte der Begegnung mit Spring Custom Annotation
Versuchen Sie, || anstelle des ternären Operators zu verwenden
Das Erfolgsgeheimnis von IntelliJ IDEA
Die Geschichte der Aktualisierung des Docker-Containers von Sonar Qube
So bestimmen Sie die Anzahl der Parallelen
Die Geschichte von RxJava, das unter NoSuchElementException leidet
So sortieren Sie eine Liste von SelectItems
Verwenden Sie SSIServlet mit dem in SpringBoot 2.2.4 integrierten Tomcat
Ausgabe des Buches "Einführung in Java"
Erstellen Sie eine RestAPI mit Wicketstuff-Restannotations von Apache Wicket
Die Geschichte des Schreibens von Java in Emacs
Die Geschichte, absichtlich zum ersten Mal in meinem Leben Try Catch zu verwenden
Ich möchte den Wert von Cell unabhängig vom CellType (Apache POI) transparent erhalten.
Bis zum Start eines Docker-Containers, der mit RedHat Quarkus erstellt wurde
[Java] So erhalten Sie mithilfe von Stream auf einfache Weise die längste Zeichenfolge von ArrayList
Achten Sie bei Verwendung des Float-Typs auf die Grenzprüfung des Eingabewerts
Der Name ist und das Alter ist Senden Sie eine Benachrichtigung an Slack mit der Java-freien Version von Sentry (mit Lambda)