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
@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
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
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
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
@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:
-
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.
-
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
-
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
-
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
-
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