Und zwar habe ich folgendes Problem:
Ich habe OTRS installiert, konfiguriert und es lief auch 4 Tage reibungslos. Das heisst, man konnte Tickets erstellen, es wurden E-Mails versandt usw.
Doch dann wollte ich mich einloggen und als ich die Loginseite aufrief kam nur diese Fehlermeldung:
Software error:
Can't locate object method "new" via package "Kernel::Config" at /opt/otrs//Kernel/System/Web/InterfaceAgent.pm line 75.
Dann habe ich das RPM deinstalliert und das OTRS Verzeichnis gelöscht (Config vorher gesichert). Nun das RPM wieder installiert und die Config wieder zurück kopiert und siehe da, es lief wieder. Jedenfalls für 2-3 Tage.
Dieses Problem hatte ich nun schon 3 mal und jetzt krieg ich das ganze garnicht mehr zum laufen. Im Apache error.log steht auch nur diese Zeile:
[Wed Jan 11 11:09:25 2006] [error] 25088: ModPerl::Registry: [Wed Jan 11 11:09:25 2006] -e: Can't locate object method "new" via package "Kernel::Config" at /opt/otrs//Kernel/System/Web/InterfaceAgent.pm line 75.\n
Das System auf dem OTRS läuft ist ein SUSE 9.2 Prof.
Kann mir jemand helfen?
Can't locate object method "new"
Hallo,
ob ich so hilfreich sein werde, weiß ich nicht. Ich habe mal mit meinen wenigen Perl-Kenntnissen mal versucht das ganze auseinander zu nehmen.
In dem "InterfaceAgent.pm" Modul wird die Datei "/opt/otrs/Kernel/Config.pm" geladen und eben in Line 75 die Methode "new" ausgeführt ... bzw. soll sie ausgeführt werden.
Die "Config.pm" selbst hat solche Methode wirklich nicht, jedoch die Datei "/opt/otrs/Kernel/Config/Defaults.pm" welche direkt in die "Config.pm" mit einkompiliert werden sollte.
Daher die Fragen:
ob ich so hilfreich sein werde, weiß ich nicht. Ich habe mal mit meinen wenigen Perl-Kenntnissen mal versucht das ganze auseinander zu nehmen.
In dem "InterfaceAgent.pm" Modul wird die Datei "/opt/otrs/Kernel/Config.pm" geladen und eben in Line 75 die Methode "new" ausgeführt ... bzw. soll sie ausgeführt werden.
Die "Config.pm" selbst hat solche Methode wirklich nicht, jedoch die Datei "/opt/otrs/Kernel/Config/Defaults.pm" welche direkt in die "Config.pm" mit einkompiliert werden sollte.
Daher die Fragen:
- existiert die Datei "Config.pm" ??
- existiert am Ende dieser Datei eine Zeile mit der Syntax
Code: Select all
use Kernel::Config::Defaults;
ja die datei Comfig.pm existiert und schaut so aus (Kommentare entfernt):
Und auch die Kernel/Config/Default.pm existiert.
Code: Select all
package Kernel::Config;
# --
sub Load {
my $Self = shift;
$Self->{'DatabaseHost'} = 'abas';
$Self->{'Database'} = 'otrs';
$Self->{'DatabaseUser'} = 'xxx';
$Self->{'DatabasePw'} = 'xxx';
$Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";
$Self->{Home} = '/opt/otrs';
$Self->{CheckMXRecord} = 0;
$Self->{'SystemID'} = 10;
$Self->{'SecureMode'} = 1;
$Self->{'Organization'} = 'Bundesarchiv';
$Self->{'LogModule::LogFile'} = '/tmp/otrs.log';
$Self->{'LogModule'} = 'Kernel::System::Log::SysLog';
$Self->{'FQDN'} = 'otrs.barch.ivbb.bund.de';
$Self->{'DefaultLanguage'} = 'de';
$Self->{'DefaultCharset'} = 'utf-8';
$Self->{'AdminEmail'} = 'root@barch.bund.de';
$Self->{'ProductName'} = 'Bundesarchiv Ticketsystem';
use strict;
use vars qw(@ISA $VERSION);
use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');
$VERSION = '$Revision: 1.16 $';
$VERSION =~ s/^\$.*:\W(.*)\W.+?$/$1/;
$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'abas',
BaseDN => 'o=Bundesarchiv,c=DE',
SSCOPE => 'sub',
UserDN => '',
UserPw => '',
AlwaysFilter => '',
Params => {
port => 389,
timeout => 120,
async => 0,
version => 3,
},
},
CustomerKey => 'uid',
CustomerID => 'cn',
CustomerUserListFields => ['cn', 'mail'],
CustomerUserSearchFields => ['cn', 'sn', 'mail'],
AdminSetPreferences => 0,
Map => [
storage-type, http-link, readonly
[ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var', '', 0 ],
[ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var', '', 0 ],
[ 'UserLogin', 'Username', 'uid', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ],
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var', '', 0 ],
],
],
};
}
1;
Du hast Deinen Fehler grade selbst gepostet
Die Zeilen "use strict" bis "$Version =~ s/..." dürfen doch nicht innerhalb der Funktion "Load" stehen.
In der Originalen Datei steht ganz groß drin "needed system stuff (don't edit this)". Diese Zeilen müssen zwischen der letzten geschweiften Klamme und der "1" am Ende stehen (so wie in der org. config.pm eben auch) ... nicht mittendrin.
Andreas
Die Zeilen "use strict" bis "$Version =~ s/..." dürfen doch nicht innerhalb der Funktion "Load" stehen.
In der Originalen Datei steht ganz groß drin "needed system stuff (don't edit this)". Diese Zeilen müssen zwischen der letzten geschweiften Klamme und der "1" am Ende stehen (so wie in der org. config.pm eben auch) ... nicht mittendrin.
Andreas