[SP-pm] Problemas com lib no windows

André Garcia Carneiro andre.garcia.carneir em terra.com.br
Quarta Novembro 14 04:21:02 PST 2007


Salve Monges!

Tenho a seguinte situação: Criei uma classe chamada Microspider dentro de um diretório também chamado
Microspider, que está sob controle de versão(SVN). Dentro desse diretório existe uma classe chamada Rule. Para
testes, eu faço update desses arquivos em um servidor Win2000, com um ActivePerl instalado. Depois de testar
submeto o arquivo para o servidor de produção, que também é um Win2000(mais velho), com um ActivePerl(mais
velho). Não tenho problemas no servidor de testes, mas quando eu rodo o sistema no servidor de produção, recebo
a seguinte mensagem:

Can't locate object method "processSpawnRules" via package "Microspider::Rule" (perhaps you forgot to load
"Microspider::Rule"?) at Microspider/Microspider.pm line 265.

A estrutura de diretórios nos dois servidores é igualzinha(src/Microspider).

O estranho é que antes do método processSpawnRules, é invocado um outro método, e não há problema algum. Alguém
tem alguma idéia do que eu possa estar fazendo de errado? Segue o código do método de onde eu chamo
processSpawnRules;


<code>
package Microspider;
use Microspider::Spawn;
use Microspider::DataBase;
use Microspider::ProcessTable;
use Microspider::Rule;
use DBI;
use strict;

.
.
.

sub Spawn {
	my ($self,$config) 	= @_;
	my $rule		= Microspider::Rule->new(); #Não tenho problemas aqui
	$rule->name($config->{rule}); #Nem aqui
	my $lista_cfg 		= $rule->loadSpawnRules($config); # E nem aqui

	$config			= $rule->processSpawnRules($config,$lista_cfg);
	my $db 			= Microspider::DataBase->new();
	$config->{dbh} 		= $db->openDBConn();
	my $spawn 		= Microspider::Spawn->new();
	$spawn->init($config);
	$spawn->newSpawnProcess();
	$spawn->create($config);
	$spawn->status(-1);#Ainda não iniciado.
	#Registrando na tabela de processos, com o objeto ProcessTable
	my $ptable 		= Microspider::ProcessTable->new();
	$ptable->insert($spawn);
	#Incluindo a informação do spawn em $spawnlist. Necessário caso o spawn precise ser executado novamente.
	$self->SpawnListAdd($spawn);
}
.
.
.
</code>


Cheers!


--
André Garcia Carneiro
Developer(Perl/PHP)
Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org



Mais detalhes sobre a lista de discussão SaoPaulo-pm