# JWebUnit Fehler: java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException



## Hein_nieH (28. Mrz 2020)

Hallo,

Ich bin jetzt kurz vor der Aufgabe.
Ich versuche mich in JWebUnit einzuarbeiten.
Hierzu habe ich eine einfache JSP Anwendung erstellt, die ich mit JWebUnit testen möchte.

Die Anwendung funktioniert auf dem Tomcat Server problemlos.

Nun zu meinem Problem:
Rufe ich die geschriebene Testklasse auf, so erhalte ich nachstehende Fehlermeldung:



> ava.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException
> at net.sourceforge.jwebunit.junit.JWebUnit.getTester(JWebUnit.java:62)
> at net.sourceforge.jwebunit.junit.JWebUnit.setTestingEngineKey(JWebUnit.java:2439)
> ….



Ich versuche es mit nachstehender IDE zu realisieren:
Eclipse Java EE IDE for Web Developers.
Version: Luna Release (4.4.0)

Ursprünglich hatte ich versucht das Projekt mit Maven zu beginnen.
Da scheiterte ich an der Fehlermeldung


> Could not resolve archetype ...



Dann habe ich in Eclipse begonnen meine Übung klassisch umzusetzen, also
JWebUnit Bibliothek
JUnit4.13
hamcrest-core1.3
heruntergeladen und in den classpath eingebunden.

Wenn ich die Testklasse in Eclipse über Run as JUnit Test laufen lasse bekomme ich diesen Fehler.

Mit der Suche in Google bin ich auch auf diesen Fehler gestoßen aber mi den Antworten/Lösungen nicht weitergekommen.

Meine Frage:
Kann ich meine Übung JWebUnit Übung in Eclipse grundsätzlich ohne Maven realisieren?
Hat jemand eine Lösung für die o.g. Fehlermeldung?

Wie gesagt diese ganze Materie ist für mich Neuland.
Mit coronafreiem Gruss 
Hein_nieH


----------



## LimDul (28. Mrz 2020)

Vermutlich fehlen dir noch Abhängigkeiten. Du kannst schauen, was das maven modul zu jwebunit als Abhängigkeiten listet: https://mvnrepository.com/artifact/net.sourceforge.jwebunit/jwebunit/3.3

Die wirst du ggf. brauchen (+alles, was die als Abhängigkeiten brauchen)

Ansonsten schauen, was auf webunit seite steht: https://jwebunit.github.io/jwebunit/installation.html - Da steht was, das man eines der beiden Plugins (HtmlUnit oder Webdriver) nutzen soll.

Edit: Auf der Webseite steht es sogar: 
If you don't want to use Maven, make sure you add the jwebunit-htmlunit-plugin-XX.jar, jwebunit-core-XX.jar and all HtmlUnit dependencies (these files are in lib/ folder of the JWebUnit package) to your classpath in your IDE.


----------



## Hein_nieH (29. Mrz 2020)

Hallo Herr Langwald,

danke für die Rückmeldung.
Die Hinweise im letzten Absatz sind bei mir vollständig erfüllt.
Ich werde mir die Links zu jwebunit noch einmal ansehen.

Das von mir geschilderte Problem scheinen viele Entwickler zu haben.

Mit freundlichem Gruss
Hein_nieH


----------



## mrBrown (29. Mrz 2020)

Hein_nieH hat gesagt.:


> Ursprünglich hatte ich versucht das Projekt mit Maven zu beginnen.
> Da scheiterte ich an der Fehlermeldung



Die zu beheben wäre vermutlich einfacher gewesen,  das ganze ohne Maven oä zu machen ist eine ziemliche Qual 


Hein_nieH hat gesagt.:


> Hallo Herr Langwald,


„Herr Langwald“ ist der Betreiber des Forums, geantwortet hat dir @LimDul


----------



## Hein_nieH (29. Mrz 2020)

Hallo LimDul,
danke für den Hinweis.
Also werde ich zunächst Versuchen Maven zum laufen zu bringen.
Es soll in meiner Eclipse Version Luna 440 bereits integriert sein jedoch bin ich auf Grund einer Fehlermeldung nicht in der Lage ein simples Maven-Projekt anzulegen, daher der


----------



## thecain (29. Mrz 2020)

Warum eigtl Luna? Das ist doch Uralt...


----------



## Hein_nieH (30. Mrz 2020)

Hallo,
wenn ich mit Maven arbeite habe ich das Problem, das ich über den Remote Archetype Catalog nichts laden kann.
Gebe ich im Eingabefenster (Window->preverences->Maven->Archetype) den Link ein und drücke den Button "Verify", so kommt die Meldung
"Remote cataloge is empty".
Ich habe kein Proxy.Dachte zunächst es liegt daran.
Gibt es einen Forenmitglied, das ein jwebunit Projekt auch ohne Maven erfolgreich zum Laufen gebracht hat.
Ich habe das Ganze Wochenende nur mit der Problemlösung verbracht.
D.h ich habe versucht ein simples Maven-Projekt in Eclipse zu starten.


----------



## kneitzel (30. Mrz 2020)

Also den Punkt von @thecain möchte ich noch einmal aufgreifen: Wieso arbeitest Du mit einer Eclipse Version von 2014? Die ist nun wirklich hoffnungslos veraltet und die dürfte hier kaum einer im Einsatz haben und ob man sich daran erinnert, wie etwas vor 6 Jahren war?

Was spricht gegen die Nutzung einer aktuellen Version?

Aber davon unabhängig:
Was genau versuchst Du? Deinem Text entnehme ich, dass Du versuchst einen neuen Archetype Catalog hinzu zu fügen. Was für einen Archetype Catalog willst Du denn hinzu fügen? Das Maven Repository bietet einen zentralen Archetype Catalog. Da finden sich die Dinge, die Du brauchst doch. Der Link bezüglich Installation in #2 besagt auch nichts von einem Archetype Catalog. Alles was Du machen sollst, ist die Dependency in der pom.xml eintragen....
Daher frage ich mich gerade, was ich da derzeit übersehen habe ...


----------



## Hein_nieH (30. Mrz 2020)

Hallo JustNobody,
Ursprünglich ging es darum mich in JWebUnit einzuarbeiten, d.h. ich wollte zu ein paar geschrieben JSP  Testklassen schreiben.
Ich dachte ich bekomme das ohne Maven hin.
Ich habe mir JWebUnit heruntergeladen und in Eclipse eingebunden. Ebenfalls habe ich mir Junit (mit hamcrest-core) heruntergeladen und in Eclipse
eingebunden.
Beim Versuch den UnitTest auszuführen gab es dann nachstehende Fehlermeldung 


> Java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException
> at net.sourceforge.jwebunit.junit.JWebUnit.getTester(JWebUnit.java:62)
> at net.sourceforge.jwebunit.junit.JWebUnit.setTestingEngineKey(JWebUnit.java:2439)
> ….


Google Recherchen zufolge haben sich andere Anwender in der Vergangenheit mit diesem Problem auch herumgeschlagen.

Nach dem ich mich mit verschiedenen Beispielanwendungen (welche ich bei Google gefunden habe) beschäftigt habe, wurde klar
dass es wohl ohne zuvor ein Maven-Projekt zu starten nicht oder nur extrem schwierig funktionieren würde. 
Daher mein Versuch, entsprechend der bei Google gefundenen Beispiele zu JWebJunit diese unter Einbeziehung von Maven zu realisieren.
Und damit begann das nächste Problem: Ich konnte keinen über Eclipse kein archetypeladen. Ich hätte maven-archetype-webapp benötigt.
Die Nutzung der intern von Eclipse mitgelieferten archettype-Dateien verursachen die Fehlermeldung "could not resolve archetype"

Versuche ich in Eclipse per Remote den Archetype-Catalog zu laden erhalte ich die Meldung "Remote Cataloge is emty".

Warum Eclipse Luna.
Auf einem Firmenrechner ist jdk 1.7.0 installiert. Mal so schnell eine höhere Java-Version aufspielen geht leider nicht.
Die hierzu am stabilsten laufende Eclipse Version wäre nach meinem Kenntnisstand Eclipse LUNA.

Das Problem mit dem leeren Archetype Katalog habe scheinbar nicht nur ich sondern auch viele andere Nutzer.
Gleiches gilt für die Fehlermeldung:


> Java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException
> at net.sourceforge.jwebunit.junit.JWebUnit.getTester(JWebUnit.java:62)
> at net.sourceforge.jwebunit.junit.JWebUnit.setTestingEngineKey(JWebUnit.java:2439)
> ….



Ich hoffe, dass jetzt etwas mehr Klarheit herrscht.
Leider befürchte ich, dass ich meine Gehversuche mit JWebUnit begraben muss.

Gruss Hein_neiH


----------



## mrBrown (30. Mrz 2020)

Hein_nieH hat gesagt.:


> Warum Eclipse Luna.
> Auf einem Firmenrechner ist jdk 1.7.0 installiert. Mal so schnell eine höhere Java-Version aufspielen geht leider nicht.
> Die hierzu am stabilsten laufende Eclipse Version wäre nach meinem Kenntnisstand Eclipse LUNA.


Wenn du Eclipse einfach so installieren kannst, ist eine zusätzliche, aktuelle Java-Version noch einfacher zu installieren.

ZB über sdk-man, Java 1.7 bleibt davon unberührt.



Hein_nieH hat gesagt.:


> Nach dem ich mich mit verschiedenen Beispielanwendungen (welche ich bei Google gefunden habe) beschäftigt habe, wurde klar
> dass es wohl ohne zuvor ein Maven-Projekt zu starten nicht oder nur extrem schwierig funktionieren würde.
> Daher mein Versuch, entsprechend der bei Google gefundenen Beispiele zu JWebJunit diese unter Einbeziehung von Maven zu realisieren.
> Und damit begann das nächste Problem: Ich konnte keinen über Eclipse kein archetypeladen. Ich hätte maven-archetype-webapp benötigt.
> Die Nutzung der intern von Eclipse mitgelieferten archettype-Dateien verursachen die Fehlermeldung "could not resolve archetype"


Du brauchst keinen Archetype, geht genausogut ohne.

Wenn du schon Beispielprojekte gefunden hast ist’s am einfachsten, einfach eines von denen zu nutzen.
Wenn nötig einfach alles rausschmeißen, was für dein Projekt irrelevant ist.

Ansonsten kann dir sicher hier auch jemand kurz eine entsprechende pom.xml bereitstellen (ich würde, wenn ich grad nen Rechner hätte...)


----------



## kneitzel (30. Mrz 2020)

Nein, nicht wirklich....

Also das mit der ClassNotFoundException: Das sieht mir etwas nach eine fehlenden Library aus. Nur das Jakarta Regex Projekt hatte sein letztes Release 2007. Daher würde mich prinzipiell auch einmal interessieren, was für alte Versionen du da überhaupt verwendest, so dass es da ggf. so eine Abhängigkeit gibt? Das Projekt findet sich aber ansonsten unter


			Jakarta Regexp - Jakarta Regexp
		

und Downloads unter


			Index of /dist/jakarta/regexp
		


Evtl. kommst Du weiter, wenn Du da etwas verwendest.

Aber zurück zu Maven:
So einen Archetyp kannst Du ja nutzen wollen. Aber noch einmal: Wozu hast Du unter Window->preverences->Maven->Archetype  einen neuen Archetyp Catalog eingeben wollen? Der Archetyp maven-archetype-webapp sollte auch so zur Verfügung stehen, wenn man mit Eclipse ein neues Projekt anlegt. Luna habe ich aber nicht, aber unter 2019-3 legt man einfach ein neues Projekt an und in den Dialogen wählt man dann den Archetyp aus. Muss man ggf. auf der ersten Seite des Wizards einen Haken wegnehmen, dass er da nicht den default Archetyp nutzen soll. 
==> Ich lade gerade luna runter, um es mir einmal anzusehen, ob es da anders war. So richtig glauben kann ich es aber nicht ...

Und diese asbach uralt Versionen zu nutzen sehe ich extrem kritisch. Wie man sieht: Gewisse Libraries gibt es so nur noch in Archiven und so. Undwer weiss, was da annicht behobenen Bugs und Security Problemen drin ist. Aber vielen Dingen kann man direkt nachgehen....


Aber generell kannst Du einfach ein pom.xml nehmen und anpassen. Da ist keinerlei Magie so dass Du sonst irgendwas irgendo in der GUI klicken musstdamit etwas geht und wenn Du das nicht gemacht hast, hast Du nur unbrauchbaren Mist ...
Aber ob und wie sowas dann auf 1.7 laufen wird, ist dennoch die Frage. Die Libraries müssen ja alle 1.7 unterstützen ... Das könnte durchaus ein Problem darstellen....


----------



## Hein_nieH (30. Mrz 2020)

> Luna habe ich aber nicht, aber unter 2019-3 legt man einfach ein neues Projekt an und in den Dialogen wählt man dann den Archetyp aus.



So sollte es bei Luna in der Theorie auch sein, die Praxis sieht jedoch anders aus.
Wenn man bei Google die Fehlermeldung "Could not resolve archetype" eingibt, so sieht man das viele Nutzer dieses Problem haben.
Morgen vormittag experimentiere (anders kann man es nicht mehr nennen)  ich weiter.

Ich wäre froh, wenn ich überhaupt ein simples JWebUnit Projekt zum laufen bekäme.
Die implementation der JSP und der Testcases funktionieren ja in Eclipse.
Auch auf dem TomCat läufen die JSP

Nur wenn man die Testklasse in Eclipse startet kommt der verdammte Fehler


> Java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException
> at net.sourceforge.jwebunit.junit.JWebUnit.getTester(JWebUnit.java:62)
> at net.sourceforge.jwebunit.junit.JWebUnit.setTestingEngineKey(JWebUnit.java:2439)
> ….



Gruss Hein_nieH


----------



## Hein_nieH (31. Mrz 2020)

Moinsen,

ich habe heute noch folgenden Test gemacht:
- Eclipse Luna neu aufgesetzt
- neuen jungfräulichen Workspace angelegt und
- alten .m2 Folder gelöscht

Anschliessend versucht ein neues Maven Projekt anzulegen.
Leider ohne Erfolg.
Es kam wieder der Fehler


> Could not resolve archetype ...



Mittlerweile habe ich keine weiteren Ideen.
Gruss Hein_nieH


----------



## mrBrown (31. Mrz 2020)

Vergiss den archetype.

Du sagtest du hast Beispiel-Projekte gefunden? Kannst du einmal eins zeigen? Dessen Konfiguration kann man dann nutzen.




Hein_nieH hat gesagt.:


> - Eclipse Luna neu aufgesetzt


Wie schon gesagt: installier dir einfach zusätzlich ein aktuelles Java und ne aktuelle Eclipse-Version. Sowohl die Java als auch die Eclipse-Version werden nicht mehr unterstützt.


----------



## Hein_nieH (31. Mrz 2020)

… zum Beispiel dieses hier...

Beispiel JWebUnit

Gruss Hein_nieH


----------



## mrBrown (31. Mrz 2020)

Hein_nieH hat gesagt.:


> … zum Beispiel dieses hier...
> 
> Beispiel JWebUnit


Dort gibts am Ende ein Eclipse-Project zum runterladen, einfach mal ausprobiert?


----------



## Hein_nieH (31. Mrz 2020)

Hallo,

habe das Projekt aus dem Tutorial importiert.
Im Eclipse gab es eine Fehlermeldung, dass es mit dem Archetype Probleme gibt.
Ich werde morgen mal einen Screenshot reinstellen.

Gruss Hein_nieH


----------



## mrBrown (31. Mrz 2020)

Da wird weder ein Archetype nötig noch wird einer benutzt.

Und wie schon gesagt: die Eclipse-Version ist völlig veraltet, nutz ne Neue.


----------



## Hein_nieH (31. Mrz 2020)

Moinsen,

wie im Post 9 geschrieben



> Warum Eclipse Luna.
> Auf einem Firmenrechner ist jdk 1.7.0 installiert. Mal so schnell eine höhere Java-Version aufspielen geht leider nicht.
> Die hierzu am stabilsten laufende Eclipse Version wäre nach meinem Kenntnisstand Eclipse LUNA.



Der Ausgangspunkt ist das ich nur jdk 1.7.0 auf meinem Firmenrechner habe. Da herum muss ich alles anpassen, wenn ich diesen nutze.


----------



## mrBrown (31. Mrz 2020)

Hein_nieH hat gesagt.:


> Der Ausgangspunkt ist das ich nur jdk 1.7.0 auf meinem Firmenrechner habe. Da herum muss ich alles anpassen, wenn ich diesen nutze.


Dann lad einfach eine andere Java-Version runter? Beliebige Programme ausführen darfst du ja offensichtlich...


----------



## Hein_nieH (1. Apr 2020)

Moinsen,

ich habe zu meinem JWebUnit-Versuch noch einmal einen Screenshot herangehängt.
Hier habe ich den Ansatz OHNE Maven dargestellt.

Es wurden als externe Bibliotheken eingebunden
jwebunit-core-3.3
jwebunit-htmlunit-plugin-3.3
junit-4.13
hamcrest-core-1.3.

Die jsp-Dateien laufen auf dem Tomcat-Server
Die Java-Test-Klasse zeigt im Editor auch keine Fehler an.

Erst wenn die TestKlasse in Eclipse als JUnit-Test (Run as Junit-Test) gestartet wird erscheint der Fehler


Vielleicht kann jemand daraus eine Erklärung ableiten.

Gruss Hein_nieH


----------



## Hein_nieH (1. Apr 2020)

Hallo,

jetzt noch ein Screenshot aus dem importierten Beispiel mit Maven.

Neue Java Installation geht auf diesem Rechner nicht, da ich keine Admin Rechte habe.

Eclipse und Tomcat konnte ich in meinem Home-Verzeichnis installieren, da diese ja als gepackte Datei (*.zip) zur Verfügung gestellt werden und
nur im entsprechenden Verzeichnis entpackt werden müssen.

Gruss Hein_nieH


----------



## mrBrown (1. Apr 2020)

Hein_nieH hat gesagt.:


> Neue Java Installation geht auf diesem Rechner nicht, da ich keine Admin Rechte habe.


„Java Installation“ heißt zip-Archiv laden, entpacken und fertig. Nicht anders als bei Tomcat und Eclipse.




Hein_nieH hat gesagt.:


> Vielleicht kann jemand daraus eine Erklärung ableiten.


Die Erklärung steht doch schon hier.

Es fehlen Dependencies - entweder per Hand alle einbinden oder Maven nutzen.


----------



## kneitzel (1. Apr 2020)

Du brauchst keine Admin-Rechte für ein neueres JDK. Einfach zip File laden, entpacken, Pfad anpassen - fertig.
(z.B. download des ZIP Files von https://adoptopenjdk.net/)


----------



## Hein_nieH (1. Apr 2020)

Hallo,

ok dann starte ich morgen Vormittag einen neuen Versuch.

Gruss Hein_nieH


----------

