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

Detaillierte Erklärung zum dynamischen Festlegen des Browsertitels in Vue

Inhaltsverzeichnis Unsinn Text Der erste router/i...

So erstellen Sie ein CentOS-Basisimage

Vorwort Derzeit ist das von meiner Firma verwende...

MySQL-Experiment: Verwenden von Explain zur Analyse des Indextrends

Überblick Die Indizierung ist eine Fähigkeit, die...

Richtige Schritte zur Installation von Nginx unter Linux

Vorwort Wenn Sie wie ich ein fleißiger Java-Backe...

So verwenden Sie video.js in Vue zum Abspielen von Videos im M3U8-Format

Inhaltsverzeichnis 1. Installation 2. Einführung ...

Leitfaden zum Schreiben von HTML-Code

Gängige Konventions-Tags Selbstschließende Tags, ...

Syntax-Alias-Problem basierend auf Löschen in MySQL

Inhaltsverzeichnis MySQL-Löschsyntax-Aliasproblem...

Detaillierte Erklärung des Prinzips der Docker-Image-Schichtung

Basisbild Das Basisbild hat zwei Bedeutungen: Ist...