Could not initialize class JakartaCommonsHttpClient

Hier finden YaCy User Hilfe wenn was nicht funktioniert oder anders funktioniert als man dachte. Bei offensichtlichen Fehlern diese bitte gleich in die Bugs (http://bugs.yacy.net) eintragen.
Forumsregeln
In diesem Forum geht es um Benutzungsprobleme und Anfragen für Hilfe. Wird dabei ein Bug identifiziert, wird der thread zur Bearbeitung in die Bug-Sektion verschoben. Wer hier also einen Thread eingestellt hat und ihn vermisst, wird ihn sicherlich in der Bug-Sektion wiederfinden.

Could not initialize class JakartaCommonsHttpClient

Beitragvon flori » Mo Apr 28, 2008 10:16 am

Ich versuche gerade ein Packet für Archlinux mit der aktuellen yacy-Version zu bauen und bekomme aber immer folgende Fehlermeldung, wenn ich es starte:

Code: Alles auswählen
java.lang.NoClassDefFoundError: Could not initialize class de.anomic.http.JakartaCommonsHttpClient
        at de.anomic.plasma.plasmaSwitchboard.cleanupJob(plasmaSwitchboard.java:1936)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at de.anomic.server.serverInstantBusyThread.job(serverInstantBusyThread.java:115)
        at de.anomic.server.serverAbstractBusyThread.run(serverAbstractBusyThread.java:142)


Das Bashskript (PKGBUILD), das das Packet erzeugt sieht so aus:
Code: Alles auswählen
# Contributor: Florian Richter <Florian_Richter@gmx.de>
pkgname=yacy
pkgver=0.58
pkgrel=1
pkgdesc="Peer to peer searchengine"
arch=(i686 x86_64)
url="http://www.yacy.net/"
license="GPL"
depends=('jre' 'sudo')
makedepends=()
conflicts=()
replaces=()
install=yacy.install
source=(http://www.yacy.net/release/yacy_v${pkgver}_20080420_4720.tar.gz \
        yacy.confd yacy.rc)
md5sums=('cee0f0f6384b29488646ff431608264e'
         'ff36a209721351e40e86b1538a938651'
         'f72c6fa2426cef2f6e9b9a9a1d187829')

build() {
  cd $startdir/src/yacy/
  # set up log
  mkdir -p $startdir/pkg/var/lib/yacy/{LOG,SETTINGS}
  mkdir -p $startdir/pkg/var/log
  ln -s ../lib/yacy/LOG $startdir/pkg/var/log/yacy
  # set up configuration
  mkdir -p $startdir/pkg/etc/{rc.d/,conf.d/}
  ln -s ../var/lib/yacy/SETTINGS $startdir/pkg/etc/yacy
  install -Dm755 $startdir/src/yacy.rc $startdir/pkg/etc/rc.d/yacy
  install -Dm644 $startdir/src/yacy.confd $startdir/pkg/etc/conf.d/yacy
  # Copy jar-files
  mkdir -p $startdir/pkg/usr/share/java/yacy/
  cp -r classes/ $startdir/pkg/usr/share/java/yacy/
  install -Dm644 lib/svnRevNr.jar lib/commons-httpclient-3.1.jar lib/tar.jar libx/*.jar $startdir/pkg/usr/share/java/yacy/
  # Copy licenses
  mkdir -p $startdir/pkg/usr/share/licenses/yacy/
  install -Dm644 libx/*.[Ll]icense $startdir/pkg/usr/share/licenses/yacy/
  # Copy shared files
  mkdir -p $startdir/pkg/usr/share/yacy/
  ln -s ../../../var/lib/yacy $startdir/pkg/usr/share/yacy/DATA
  cp -r {htroot/,locales/,skins/,ranking/,defaults/} \
                $startdir/pkg/usr/share/yacy/
  install -Dm644 httpd.mime build.properties \
        yacy.badwords.example yacy.logging \
        yacy.stopwords yacy.yellow \
                $startdir/pkg/usr/share/yacy/
}


de.anomic.http.JakartaCommonsHttpClient ist ganz sicher im Classpath vorhanden. Hat jemand ein Tip, woran das liegen könnte?
flori
 
Beiträge: 245
Registriert: Mi Jun 27, 2007 10:17 pm
Wohnort: Karlsruhe

Re: Could not initialize class JakartaCommonsHttpClient

Beitragvon flori » Mo Apr 28, 2008 10:37 am

Jetzt bin ich doch selbst einen Schritt weitergekommen. Weiter oben im Log:
Code: Alles auswählen
java.lang.ExceptionInInitializerError
        at de.anomic.http.HttpClient.whead(HttpClient.java:202)
        at de.anomic.yacy.yacyPeerActions.loadSeedLists(yacyPeerActions.java:175)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at de.anomic.server.serverInstantBusyThread.job(serverInstantBusyThread.java:115)
        at de.anomic.server.serverAbstractBusyThread.run(serverAbstractBusyThread.java:142)
Caused by: java.lang.RuntimeException: release file name 'yacy_emb_v0.1_19700101_0' is not valid, no support for emb
        at de.anomic.yacy.yacyVersion.<init>(yacyVersion.java:104)
        at de.anomic.yacy.yacyVersion.thisVersion(yacyVersion.java:177)
        at de.anomic.http.JakartaCommonsHttpClient.<clinit>(JakartaCommonsHttpClient.java:79)
        ... 8 more
flori
 
Beiträge: 245
Registriert: Mi Jun 27, 2007 10:17 pm
Wohnort: Karlsruhe

Re: Could not initialize class JakartaCommonsHttpClient

Beitragvon flori » Mo Apr 28, 2008 11:25 am

Die Lösung ist ein leeres Verzeichnis /usr/share/yacy/libx anzulegen:

In /source/de/anomic/yacy/yacyVersion.java, Zeile 177:
Code: Alles auswählen
    public static final yacyVersion thisVersion() {
        // construct a virtual release name for this release
        if (thisVersion == null) {
            plasmaSwitchboard sb = plasmaSwitchboard.getSwitchboard();
            if (sb == null) return null;
            boolean full = new File(sb.getRootPath(), "libx").exists();
            thisVersion = new yacyVersion(
                "yacy" + ((full) ? "" : "_emb") +
                "_v" + sb.getConfig("version", "0.1") + "_" +
                sb.getConfig("vdate", "19700101") + "_" +
                sb.getConfig("svnRevision", "0") + ".tar.gz");
        }
        return thisVersion;
    }

Irgendwie versteh ich das ganze nicht. Warum erkennt er oben nicht einmal Datum und Revisionnumber
flori
 
Beiträge: 245
Registriert: Mi Jun 27, 2007 10:17 pm
Wohnort: Karlsruhe


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste