2012-12-20 6 views
9

Odziedziczyłem projekt oparty na CXF/Hibernate/JBoss, który zawiera nazwę pliku o nazwie database.xsd. Przeczesałam projekt, aby dowiedzieć się, który podsystem/komponent w systemie używa database.xsd, ale to spowodowało tylko jedno odniesienie w pliku używanym przez wtyczkę maven-war do utworzenia pliku WAR (webapp-cache.xml).Który framework, narzędzie lub wtyczka nakazuje na stałe zakodować nazwę pliku "database.xsd"?

Sugeruje to dla mnie, że database.xsd to standardowa nazwa pliku oczekiwana przez niektóre frameworki lub wtyczki. Ale co to jest? Hibernować? CXF? Inny?

Czy istnieje dokumentacja opisująca rolę pakietu database.xsd w pakiecie, który na nim polega?

UPDATE: Tymczasowo usuwając database.xsd i próbuje odbudować, zaowocował licznymi błędami kompilacji, które doprowadziły do ​​zasady XML2SQL.java pliku przy użyciu pakietu odwołuje *.hbm.xml plików dto. To mówi mi, że winowajcą jest ... Hibernacja!

+5

Wygląda na to, że jest to trudny plik cookie, ponieważ grepping Google nie daje żadnych istotnych informacji: ["database.xsd" site: grepcode.com] (http://goo.gl/dUSoc). Czy jesteś pewien, że jest to zakodowana wartość? –

+1

Czy możesz przesłać część maven, odwołując się do tego pliku i lokalizacji tego pliku w projekcie? – forhas

+1

@forhas Gdybym miał odniesienie do tego pliku w dowolnym miejscu mojego projektu (w tym pom.xml), nie zadaję tego pytania. :) Pobrałem całą strukturę katalogów projektu (rekurencyjnie!) Dla ciągu 'database.xsd' - bez skutku. To dlatego jest dla mnie taka tajemnica. Czy jest naprawdę zakodowany w jednej z frameworków, których używam? Czy to zależy od autora projektu, a dorozumiane rozszerzenie '.xsd' jest gdzieś doklejone? Nie wiem +1 za dzwonienie. – Withheld

Odpowiedz

4

To Hibernate, ponieważ tymczasowo usuwając database.xsd i próbuje odbudować, zaowocował licznymi błędami kompilacji, które doprowadziły do ​​zasady XML2SQL.java pliku przy użyciu pakietu odwołuje *.hbm.xml plików Dto tylko. (patrz aktualizacja powyżej)

1

Podejdę do tego w "staroświecki sposób", do dobrego logowania + do wyszukiwania binarnego.

pierwsze w środowisku testowym:

1) Upewnij się, że kod jest skonfigurowany do korzystania log4j i posiada najszerszą na poziom rejestrowania.

2) Po usunięciu pliku database.xsd należy określić z grubsza "punkt pośredni" awarii. Na przykład powiedzmy, że przy prawidłowej konfiguracji systemu generuje 1000 linii logowania. Po usunięciu pliku database.xsd nie można załadować i zatrzymuje się z zaledwie 500 liniami rejestrowania. Patrząc na rejestrowanie, określ, które klasy/metody są wywoływane. (Innym sposobem pracy z tym rozwiązaniem zamiast usuwania pliku database.xsd jest wprowadzenie kopii z błędami składni do środowiska testowego.)

3) W badaniu w kroku 2 dodaj więcej rejestrowania i próbuj/złap, aby uchwycić więcej Informacja. Jeśli to nie pozwoli ci zawęzić celu. Powtórz, koncentrując się na punkcie "250 linii logujących". Kontynuuj cięcie obszaru problemowego o połowę za każdym razem, dopóki nie znajdziesz klas docelowych.

Wiele programów Java, które widziałem, kodują "szczęśliwą ścieżkę" i polegają na obsłudze wyjątków najwyższego poziomu w celu przechwytywania i rejestrowania błędów, ale może to prowadzić do bardzo grubych (ogromna liczba linii) i trudnych do odczytania wnętrzności akta.

+0

+1 za dostarczenie pomysłu (tymczasowego) usunięcia 'bazy danych.xsd' i zobacz, co się stanie ... Cóż, projekt nie zostałby pomyślnie wykonany, więc rejestrowanie log4j nie jest istotne. Zamiast tego kompilacja pokazuje LICZNE BŁĘDY KOMPILACJI, w których nie istnieje pakiet określonej tabeli (zbyt specyficzne dla aplikacji, aby przejść do szczegółów tutaj). Tylko 3 pliki Java produkują to albo * "pakiet nie istnieje" * lub * "nie można znaleźć symbolu" * błąd. Ze względu na CXF/Spring sposób okablowania XML na POJO, wciąż bardzo trudno jest mi powiedzieć, która z ram powoduje to. Dodatkowe pomysły? – Withheld

+0

Chciałbym kontynuować i pozwolić na jego pomyślne zbudowanie, a następnie uruchomić go w środowisku testowym z "złą składnią" w pliku xsd. Błędy, które otrzymasz, pozwolą ci je nieco zawęzić. –

Powiązane problemy