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

So erkennen Sie die Ubuntu-Version mithilfe der Befehlszeile

Methode 1: Verwenden Sie das Dienstprogramm lsb_r...

So zeigen Sie die Zeitzone in MySQL an und ändern sie

Heute habe ich festgestellt, dass ein Programm ei...

Beispielcode für die programmgesteuerte Verarbeitung von CSS-Stilen

Vorteile eines programmatischen Ansatzes 1. Globa...

Einführung in die Vue3 Composition API

Inhaltsverzeichnis Überblick Beispiel Warum wird ...

js Array fill() Füllmethode

Inhaltsverzeichnis 1. fill()-Syntax 2. Verwendung...

Einführung in lokale Komponenten in Vue

In Vue können wir lokale Komponenten selbst defin...

Wird der Index durch MySQL ungültig?

Wird MySQLs IN den Index ungültig machen? Gewohnh...

Zusammenfassung der Verwendung von berechneten Vue-Eigenschaften und -Listenern

1. Berechnete Eigenschaften und Listener 1.1 Bere...

Schritte zur vollständigen Deinstallation des Docker-Images

1. docker ps -a zeigt den laufenden Image-Prozess...