DSpace 7 - erro 500 Service Unavailable

Olá, Colegas
Estamos realizando atualização do DSpace para versão 7. Fizemos os procedimento e configurações, mas está aparecendo o erro 500 Service Unavailable

1 curtida

@wilfredosantiago35, boa tarde!

O erro 500 é genérico e pode ter diversas causas. Ele indica que o servidor tentou processar uma solicitação, mas algo impediu a execução. Para entender o que está acontecendo, precisamos dos logs de erro do servidor. Só assim teremos alguma pista para identificar a origem do problema.
Converse com a sua TI e solicite os logs para postá-los aqui.

Obrigado!

Segue log do diretório dspace-updater-tool/dspace-install-dir/log/dspace.log
link com o arquivo DSpace - Google Drive

Boa tarde @wilfredosantiago35,

O erro 500 (Internal Server Error) está geralmente associado a problemas de comunicação entre o front-end e o back-end . Isso pode ocorrer porque o front-end não consegue se conectar ao back-end

Verifique se o back-end está disponível e certifique-se de que a url e porta estão configuradas corretamente no arquivo de configuração do front [dspacce-angular]config/config.prod.yml

As URLs configuradas no dspace.cfg (back-end) e no config.prod.yml (front-end) devem ser exatamente iguais, incluindo o protocolo (http ou https), o domínio e a porta.

Por exemplo:

Arquivo dspace.cfg

dspace.server.url = http://localhost:8080/server
dspace.ui.url = http://localhost:4000

Arquivo config.prod.yml:

ui:
  ssl: false
  host: localhost
  port: 4000
  nameSpace: /


rest:
  ssl: false
  host: localhost
  port: 8080
  nameSpace: /server

Você pode verificar essa conexão no dspace-angular com o comando:

yarn test:rest

1 curtida

Olá, @mirelecosta
o resultado do comando foi
yarn run v1.22.22
$ ts-node --project ./tsconfig.ts-node.json scripts/test-rest.ts
Building production app config
Overriding app config with /home/suporte/dspace-updater-tool/source/dspace-angular-dspace-7.6/config/config.yml
Unable to find env config file at /home/suporte/dspace-updater-tool/source/dspace-angular-dspace-7.6/config/config.production.yaml
…Testing connection to REST API at https://api7.dspace.org/server/api

RESPONSE: 403 Forbidden

ERROR: INVALID DSPACE REST API! Response is not valid JSON!
Response returned:

403 Forbidden

403 Forbidden

Done in 2.89s.

Verificada as configurações e reiniciado os containers. Mas o erro continua. o endereço de acesso está como http://10.0.104.253:5000/home
O dspace.server.url = http://10.0.104.253:8080/server, não deveria ser com a porta 5000?

Olá @wilfredosantiago35, pelo que entendi está usando o back-end na porta 8080 e o front na 5000 certo? Quando você acessa http://10.0.104.253:8080/server está aparecendo a interface do backp-end?

Como algo assim?

Verifique a porta para o front no arquivo de configuração dspace.cfg é a variável dspace.ui.url. Pelo visto está subindo o fron-end na porta 5000. Neste caso precisa configurar os arquivos no back e front para essa porta. Por padrão o dspace usa 8080 back-end e 4000 front-end

1 curtida

Segue as configurações de front e backend para ter melhor compreensão para ver se está errado.
Quando acesso o endereço http://10.0.104.253:8080/server aparece HTTP Status 404 – Não Encontrado


Certo, então o problema é que o back-end não subiu, qual o nome desse arquivo? eu não consegui identificar essas variáveis, está usando docker?

o nome do arquivo é upgrade-variables.properties
parece que todos os containers estão UP, parece alguma configuração errada

Encaminho log do dspace, caso algum colega possa ajudar dspace.log

@wilfredosantiago35, tudo bem? Pelo que vi nos logs, o problema parece estar na conexão do DSpace com o banco de dados PostgreSQL. O erro principal indica que o sistema não consegue criar um driver JDBC para a URL configurada. Isso pode estar acontecendo por algumas razões, mas as principais são:

  1. URL do banco de dados mal configurada
    No log, a URL aparece assim:
jdbc:postgresql://10.0.104.253:5432/dspace,jdbc:postgresql://dspace7db.dspacenet:5432/dspace

O correto seria apenas uma única URL. Dá uma conferida no arquivo de configuração (dspace.cfg ou local.cfg) e veja se a linha db.url está assim:

db.url=jdbc:postgresql://10.0.104.253:5432/dspace

Se houver mais de uma URL, isso pode estar bagunçando a conexão.

  1. Banco de dados pode estar fora do ar
    Para testar se o PostgreSQL está rodando, tente conectar manualmente:
psql -h 10.0.104.253 -U dspace -d dspace

Se não conseguir conectar, pode ser que o serviço do banco esteja parado. Tente reiniciar:

systemctl restart postgresql
systemctl status postgresql
  1. Driver JDBC pode não estar instalado
    O erro “No suitable driver” pode indicar que o driver do PostgreSQL não está disponível. Para conferir se ele está instalado, rode:
ls /usr/share/java/postgresql*.jar

Se não aparecer nada, instale com:

sudo apt install libpostgresql-jdbc-java
  1. Serviços do DSpace podem precisar ser reiniciados
    Se o banco estiver ok, mas o erro persistir, reinicie os serviços do DSpace. Se estiver usando Docker:
docker-compose down
docker-compose up -d

Se for uma instalação direta, tente:

systemctl restart dspace
  1. Firewall pode estar bloqueando a conexão
    Caso a conexão continue falhando, pode ser um bloqueio de rede. Libere a porta 5432 no firewall:
sudo ufw allow 5432/tcp
sudo systemctl restart ufw

Depois de testar esses passos, tenta acessar a REST API novamente e me avisa se o erro persistir. Se puder, compartilha os novos logs!

Grato pela ajuda! Problema resolvido

2 curtidas