So importieren Sie Tomcat-Quellcode in Idea

So importieren Sie Tomcat-Quellcode in Idea

1. Laden Sie den Tomcat-Code herunter

Dieser Artikel wählt den 9.0-Zweig. Diese Version des Servlets ist immer noch auf GitHub verfügbar und beginnt mit javax

2. Verzeichnisstruktur nach dem Download

Bildbeschreibung hier einfügen

3. Der Quellcode wird mit Ant erstellt (hier wird stattdessen Pom verwendet).

<Projekt xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.tomcat</groupId>
  <artifactId>Kater</artifactId>
  <name>Kater</name>
  <version>9.0.19</version>

  <Eigenschaften>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </Eigenschaften>
  <Abhängigkeiten>
    <Abhängigkeit>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>Test</scope>
    </Abhängigkeit>
    <Abhängigkeit>
      <groupId>org.apache.ant</groupId>
      <artifactId>Ameise</artifactId>
      <version>1.10.11</version>
    </Abhängigkeit>
    <Abhängigkeit>
      <groupId>wsdl4j</groupId>
      <artifactId>wsdl4j</artifactId>
      <version>1.6.3</version>
    </Abhängigkeit>

    <!-- https://mvnrepository.com/artifact/javax.xml.soap/javax.xml.soap-api -->
    <Abhängigkeit>
      <groupId>javax.xml.soap</groupId>
      <artifactId>javax.xml.soap-api</artifactId>
      <version>1.4.0</version>
    </Abhängigkeit>

    <Abhängigkeit>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jaxrpc_1.1_spec</artifactId>
      <version>2.1</version>
    </Abhängigkeit>

    <Abhängigkeit>
      <groupId>org.eclipse.jdt</groupId>
      <artifactId>ecj</artifactId>
      <version>3.17.0</version>
    </Abhängigkeit>


    <Abhängigkeit>
      <groupId>org.easymock</groupId>
      <artifactId>einfaches Mock</artifactId>
      <version>4.0.2</version>
      <scope>Test</scope>
    </Abhängigkeit>

    <Abhängigkeit>
      <groupId>biz.aQute.bnd</groupId>
      <artifactId>biz.aQute.bndlib</artifactId>
      <version>5.2.0</version>
      <scope>bereitgestellt</scope>
    </Abhängigkeit>

    <Abhängigkeit>
      <groupId>com.unboundid</groupId>
      <artifactId>unboundid-ldapsdk</artifactId>
      <version>3.2.0</version>
    </Abhängigkeit>
  </Abhängigkeiten>

</Projekt>

Verwenden Sie die Idee, direkt erneut zu importieren, und wählen Sie vorübergehend JDK 1.8 aus.

4. Problemlösung

4.1 Verstümmelte Zeichen auf der Konsole

INFO: Mindestens ein JAR wurde nach TLD durchsucht, enthält die TLD aber noch nicht. Aktivieren Sie die Debug-Protokollierung für diesen Logger, um die vollständige Liste der gescannten JARs zu erhalten, in denen jedoch keine TLDs gefunden wurden. Das Überspringen nicht benötigter JARs während des Scannens kann die Startzeit und die JSP-Kompilierungszeit verbessern.
29. September 2021, 03:52:17 Uhr org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
WARNUNG: Das Erstellen der SecureRandom-Instanz zur Generierung der Sitzungs-ID mit [SHA1PRNG] dauerte [149] Millisekunden.

29. September 2021 3:52:17 Verstümmelt Ändern Sie die Kodierung von conf/logging.properties (der Standardwert ist jetzt utf-8, im Grunde keine Änderungen). Warnung: Die Verwendung von [SHA1PRNG] zum Erstellen einer SecureRandom-Instanz zur Generierung der Sitzungs-ID dauerte [149] Millisekunden. Verstümmelt

Der wesentliche Grund für die verstümmelten Zeichen liegt darin, dass die Eigenschaftendatei verstümmelt ist. Tomcat verwendet die Methode des Systems zum Lesen von Konfigurationsdateien, indem es URL.openStream verwendet und dann die Methode Properties.load verwendet, was zu verstümmelten Zeichen führt.

Lösung

Lesen und Neuschreiben der beiden Internationalisierungsdateien Localizer und StringManager

4.2 Zugriff auf 8080 und Fehlermeldung: JSP und andere Klassen können nicht gefunden werden

Fügen Sie der Methode org.apache.catalina.startup.ContextConfig#configureStart eine Codezeile hinzu //TODO manuell hinzugefügt context.addServletContainerInitializer(new JasperInitializer(), null); 

Bildbeschreibung hier einfügen

5. Besuchen Sie localhost:8080

Bildbeschreibung hier einfügen

über

Beachten Sie, dass jdk11-16, wenn andere Kompilierungsoptionen vorhanden sind, andere Fehler direkt auskommentieren und normal lösen kann.

Dies ist das Ende dieses Artikels zum Importieren von Tomcat-Quellcode in Idea. Weitere relevante Inhalte zum Importieren von Tomcat-Quellcode in Idea finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So starten Sie das Quellcode-Debugging von Tomcat in Idea und rufen Tomcat zum Debuggen auf
  • Detaillierte Erläuterung des IDEA-Erstellungsprojektprozesses für Tomcat8-Quellcode

<<:  Informationen zur Verwendung des Iconfont-Vektorsymbols von Alibaba in Vue

>>:  Tools zur Bildoptimierung für Webseiten und Tipps zur Verwendung

Artikel empfehlen

Vue realisiert den gesamten Prozess der Slider-Drag-Verifizierungsfunktion

Rendern Definieren Sie das Skelett, schreiben Sie...

Vue verwendet Element-UI, um die Menünavigation zu implementieren

In diesem Artikel wird der spezifische Code von V...

CocosCreator-Tutorial für den Einstieg: Erstellen Sie Ihr erstes Spiel mit TS

Inhaltsverzeichnis Prämisse TypeScript vs. JavaSc...

Zusammenfassung der Datenspeicherstruktur des Nginx-HTTP-Moduls

Ab diesem Abschnitt erklären wir das Implementier...

Code zur Änderung des CSS-Bildlaufleistenstils

Code zur Änderung des CSS-Bildlaufleistenstils .s...

Vue einfache Implementierung einer Plattenspielerlotterie

In diesem Artikel wird der spezifische Code von V...

So speichern Sie Bilder in MySQL

1 Einleitung Beim Gestalten einer Datenbank ist e...

Pycharm2017 realisiert die Verbindung zwischen Python3.6 und MySQL

In diesem Artikel erfahren Sie, wie Sie Python3.6...

MySQL-Lösung für die Konfiguration mehrerer Instanzen

1.1 Was ist MySQL Multi-Instance? Einfach ausgedr...