Message Boards

Nie znaleziono pliku (File not found)

thumbnail
Krzysztof Smaga, modified 9 Years ago.

Nie znaleziono pliku (File not found)

Junior Member Posts: 59 Join Date: 3/13/14 Recent Posts
Mam mały problemik, który denerwuje i uniemożliwia indeksowanie plików.
Wyrzuca mi w logu 'file not found exception' oraz ścieżkę do pliku.
Plik faktycznie nie istnieje na zasobie, ale w bazie (PostgreSQL) informacja o nim nadal istnieje.
Jak to ładnie wyczyścić, by nie grzebać się po bazie? Zakładam, że może to nie być jedyny a pierwszy plik nieodnaleziony przez portal.
thumbnail
Milen Dyankov, modified 9 Years ago.

Przenoszę wątek do kategorii "Co w Liferay piszczy"

Expert Posts: 310 Join Date: 10/30/12 Recent Posts
Tak dla porządku
thumbnail
Milen Dyankov, modified 9 Years ago.

RE: Nie znaleziono pliku (File not found)

Expert Posts: 310 Join Date: 10/30/12 Recent Posts
Podaj proszę wersja Liferay, bazy oraz z jakiego storage hook korzystasz (wartość property "dl.store.impl").
thumbnail
Krzysztof Smaga, modified 9 Years ago.

RE: Nie znaleziono pliku (File not found)

Junior Member Posts: 59 Join Date: 3/13/14 Recent Posts
Cześć,
Przepraszam za brak danych podstawowych, oto one:

Liferay=6.2.1
dl.store.impl=com.liferay.portlet.documentlibrary.store.FileSystemStore

Pamiętam, że jak przejmowałem ten portal po poprzednim adminie to wyskoczył błąd dwóch folderów - nie dało się ich otworzyć, skasować - no w skrócie mówić nic nie można było zrobić. Jakimś cudem udało mi się wtedy przenieść ich zawartość (z poziomu Liferaya) do nowych folderów a te błędne skasować. Obawiam się, że być może jest to pokłosie tamtej akcji.

Na dysku te dokumenty nie istnieją.
thumbnail
Bartlomiej Knabel, modified 9 Years ago.

RE: Nie znaleziono pliku (File not found)

Junior Member Posts: 76 Join Date: 1/30/11 Recent Posts
jeśli nie wykluczasz ręcznych akcji kiedyś na dysku, to jedyne co mi przychodzi do głowy to napisanie prostego kawałka javy, który przeiteruje po wszystkich plikach i usunie z bazy te, których i tak nie ma w repozytorium (u Ciebie na dysku).
thumbnail
Krzysztof Smaga, modified 9 Years ago.

RE: Nie znaleziono pliku (File not found)

Junior Member Posts: 59 Join Date: 3/13/14 Recent Posts
Problem polega na tym, że ja Javy praktycznie nie znam (dopiero się uczę). Może istnieje jakaś inna możliwość? Na przykład jakiś portlet bądź dodatek do Liferaya?
thumbnail
Milen Dyankov, modified 9 Years ago.

RE: Nie znaleziono pliku (File not found)

Expert Posts: 310 Join Date: 10/30/12 Recent Posts
Sorki ze tak późno ale nie miałem czasu wcześniej. Na szybko napisałem taki groovy script którego możesz uruchomić z Control Panel > Server Administration > Script i powie Ci jakie pliki z DL nie może znaleźć.

Kluczowe info tu to napisany na szybko - NIE uruchamiaj go na produkcji. Nie testowałem go na więcej niż 10 rekordów więc możliwe że będziesz miał OOM przy dużej bazie lub inne problemy. Potraktuj go jako wskazówka co można zrobić a nie jako gotowe narzędzie.

import com.liferay.portlet.documentlibrary.model.DLFileEntry; 
import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil;
import com.liferay.portlet.documentlibrary.store.DLStoreUtil;

fileEntries = DLFileEntryLocalServiceUtil.getFileEntries(-1, -1);

for (fileEntry in fileEntries) {
	try {
		File f = DLStoreUtil.getFile(fileEntry.getCompanyId(), fileEntry.getDataRepositoryId(), fileEntry.getName(), null);

		if (!f.exists()) {
			println "File '" + f.getAbsolutePath() + "' does not exists! The reference was found in " + fileEntry;
		}
	} catch (Exception e) {
		println "Excepton while checking file for " + fileEntry + ": " + e;	
	}
}

println "Done checking files!"
thumbnail
Krzysztof Gołębiowski, modified 9 Years ago.

RE: Nie znaleziono pliku (File not found)

Liferay Master Posts: 549 Join Date: 6/25/11 Recent Posts
Ja tylko dorzucę że do skrypty w groovym (i nie tylko) testuje się dość ciężko na standardowym formularzu w Panelu Sterowania. Ja sam korzystam z jednej z marketowych aplikacji: https://www.liferay.com/marketplace/-/mp/application/25618082.

KG