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 löschen Sie Junk-Dateien elegant in Linux

Ich frage mich, ob Sie wie ich ein Programmierer ...

Mehrere magische Verwendungen des JS ES6 Spread-Operators

Inhaltsverzeichnis 1. Attribute hinzufügen 2. Meh...

Beispiel für einen reinen CSS3-Mindmap-Stil

Mindmap Er sieht wahrscheinlich so aus: Die meist...

WebStorm kann die Lösung der Vue3-kombinierten API nicht korrekt identifizieren

1 Problembeschreibung Die kombinierte API von Vue...

Zusammenfassung häufig verwendeter Toolfunktionen in Vue-Projekten

Inhaltsverzeichnis Vorwort 1. Benutzerdefinierter...

Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler

Der Nginx 502 Bad Gateway-Fehler ist mir schon me...

Verwandte Befehle zur vollständigen Deinstallation von Nginx unter Ubuntu 16.04

nginx Übersicht nginx ist ein kostenloser, quello...

So verwenden Sie die Concat-Funktion in MySQL

Wie unten dargestellt: //Fragen Sie das Jahr und ...