[JAVA] Was tun, wenn beim Starten von Tomcat eine ClassNotFoundException auftritt?

--Umgebung - CentOS Linux release 7.6.1810 (Core) - Eclipse 2019-03 (4.11.0) - Java1.6.0_41 - Apache Maven 3.2.5

Ereignis: Ich wurde wütend, als ich Tomcat in Eclipse startete

[Consol]Registerkartenprotokoll


Information: Initializing Spring root WebApplicationContext
2020-04-17 10:32:34.216 ERROR                                   Jotm.<init>:144 - Instanciation of TransactionFactory failed
java.rmi.StubNotFoundException: Stub class not found: org.objectweb.jotm.TransactionFactoryImpl_Stub; nested exception is: 
    java.lang.ClassNotFoundException: org.objectweb.jotm.TransactionFactoryImpl_Stub
...Kürzung...
    at org.objectweb.jotm.Jotm.<init>(Jotm.java:140) ~[jotm-2.0.10.jar:"2.0.9"]
    at org.springframework.transaction.jta.JotmFactoryBean.<init>(JotmFactoryBean.java:95) ~[spring-dao-2.0.8.jar:2.0.8]
...Kürzung...
Caused by: java.lang.ClassNotFoundException: org.objectweb.jotm.TransactionFactoryImpl_Stub
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1698) ~[catalina.jar:6.0.53]
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1544) ~[catalina.jar:6.0.53]
    at java.lang.Class.forName0(Native Method) ~[na:1.6.0_41]
    at java.lang.Class.forName(Class.java:274) ~[na:1.6.0_41]
    at sun.rmi.server.Util.createStub(Util.java:286) ~[na:1.6.0_41]
    ... 85 common frames omitted

Obwohl es im Protokoll als "jotm-2.0.10.jar" angezeigt wird, habe ich mich gefragt, weil es "jotm-2.1.1.pom" ist, das in pom.xml des Projekts definiert ist.

Projekt pom.xml


<dependency>
  <groupId>org.ow2.jotm</groupId>
  <artifactId>jotm</artifactId>
  <version>2.1.1</version>
  <type>pom</type>
  <exclusions>
...Kürzung...
</dependency>
...Kürzung...
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-dao</artifactId>
    <version>2.0.8</version>
</dependency>
...Kürzung...

Es gibt "spring-dao-2.0.8.jar" unter "jotm-2.0.10.jar" im Protokoll. Wenn ich mir also "spring-dao-2.0.8.pom" ansehe, heißt es "There was!"

bash:spring-dao-2.0.8.Schau dir pom an


$ cat ~/.m2/repository/org/springframework/2.0.8/spring-dao-2.0.8.pom
...Kürzung...
<dependency>
  <groupId>jotm</groupId>
  <artifactId>jotm</artifactId>
  <version>2.0.10</version>
  <optional>true</optional>
</dependency>
...Kürzung...

Ursache: Es gibt keine Klasse außerhalb der in der pom.xml des Projekts definierten JAR-Abhängigkeit

Verursacht durch das Fehlen von "org.objectweb.jotm.TransactionFactoryImpl_Stub", das von "jotm-2.0.10.jar" verwendet wird und von "spring-dao-2.0.8.pom" verwendet wird

Problemumgehung: Definieren Sie in pom.xml ein JAR, das die Klasse am Ende der Abhängigkeit enthält

  1. Verwenden Sie JAR Search --findJAR.com, um herauszufinden, welche JAR-Datei org.objectweb.jotm.TransactionFactoryImpl_Stub enthält.
  2. Suchen Sie in Maven Repository: Suchen / Durchsuchen / Erkunden nach "jotm-jrmp-stubs", die bei der Suche gefunden wurden.
  3. Fügen Sie die Definition zur pom.xml des Projekts hinzu

Projekt pom.xml


...Kürzung...
<dependency>
    <groupId>jotm</groupId>
    <artifactId>jotm_jrmp_stubs</artifactId>
    <version>2.0.10</version>
</dependency>
...Kürzung...

Recommended Posts

Was tun, wenn beim Starten von Tomcat eine ClassNotFoundException auftritt?
Was tun, wenn eine javax.batch.operations.JobStartException auftritt?
Was tun, wenn eine javax.el.PropertyNotWritableException auftritt?
Was tun, wenn der Server-Tomcat stirbt?
Was tun, wenn in PlayFramework eine IllegalStateException auftritt?
Was tun, wenn ein Fehler auftritt, wenn nokogiri bei der Bundle-Installation eingeht?
Was tun, wenn der Tomcat-Prozess bestehen bleibt, wenn Sie Tomcat in Eclipse stoppen?
Hinweise zur Vorgehensweise beim Auftreten einer WebView ClassNotFoundException in JavaFX 12
Was tun, wenn ein ActionController :: UnknownFormat-Fehler auftritt?
Fehler ExecJS :: RuntimeUnavailable: Was tun, wenn es auftritt?
Was tun, wenn bei Verwendung von Liferay 7 / DXP unter AWS ein SAX-Parser-Fehler auftritt?
undefinierte Methode Was tun, wenn Sie "user_signed_in" erhalten?
Was tun, wenn beim Installieren von Axios in einem React + Typescript-Projekt ein Fehler auftritt?
Kein Platz mehr auf dem Gerät Was tun, wenn ein Fehler auftritt?
Was tun, wenn Sie falsche Informationen eingeben?
Was tun, wenn mvn archetype: generate fehlschlägt?
Was tun beim Debuggen von "Quelle nicht gefunden"?
Was verwenden Sie beim Konvertieren in String?
wildflly10 java8 ERROR [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodische Wiederherstellung) IJ000906 Was tun, wenn ein Fehler auftritt?
Was tun, wenn die ffi-Installation beim Starten einer Anwendung in Rails fehlschlägt?
Was tun, wenn die Installation des Debug-Gems fehlschlägt?
Was tun, wenn der Rails-Server nicht gestartet werden kann?
Was tun, wenn JSF-Tags nicht zu HTML werden?
Was tun, wenn der Rails-Server nicht gestoppt werden kann?
Was tun, wenn TextToSpeech unter Android 11 nicht funktioniert?
Was tun, wenn Sie versehentlich ein Modell erstellen?
ParseException: Was tun, wenn ein nicht analysierbares Datum erreicht ist?
BasicDataSourceFactory ist ClassNotFoundException, wenn eine Verbindung zur Datenbank in Tomcat 8 hergestellt wird
Was tun, wenn beim Versuch, Eclipse unter Java 9 auszuführen, ein NoClassDefFoundError angezeigt wird?
Was tun, wenn die Fehlermeldung "JavaScript-Laufzeit konnte nicht gefunden werden" angezeigt wird? Beim Starten des Rails-Servers
Was tun, wenn CDI BeanManager nicht mehr gefunden werden kann?
Was tun, wenn die Methode in f: ajax nicht gefunden wurde?
Was tun, wenn FacesMessage festgelegt, aber nicht angezeigt wird?
Was ist zu tun, wenn Ausdrucksoperatoren nicht auf die Methodenbindung angewendet werden können?
[Opensaml] NoClassDefFoundError tritt auf, wenn von Tomcat zu Weblogic gewechselt wird
Was tun, wenn der Befehl adb nicht ausgeführt werden kann?
Was tun, wenn mysql2 einen Bundle-Installationsfehler erhält?
Was tun, wenn der Befehl Rails unbrauchbar wird?
[Rails 6] Was tun, wenn nach der Einführung von haml ein fehlender Vorlagenfehler auftritt? [Super easy]
[Ubuntu 20.04] Was tun, wenn der externe Monitor nicht erkannt wird?
Was tun, wenn in Docker ein gcc-Fehler auftritt?
Was tun, wenn die Validierung mit der Aktualisierungsaktion nicht funktioniert?
Was tun, wenn Sie aufgrund eines SSL-Zertifikatfehlers offline gehen, wenn Sie Jenkins auf Ihrem Mac ausführen?
[Spring Boot] Was tun, wenn eine HttpMediaTypeNotAcceptableException auf einem Endpunkt auftritt, für den produziert wird?
[Rails] Was tun, wenn keine Daten in der Datenbank registriert sind?
Um Fehler beim Starten von miChecker zu vermeiden
Was tun, wenn die Änderungen im Servlet nicht berücksichtigt werden?
Was tun, wenn die Rails-Seite im Rails-Lernprogramm 1.3.2 nicht angezeigt wird?
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
Hinweise, was zu tun ist, wenn das Eclipse Maven-Abhängigkeitsglas nicht korrekt ist