Wpis z mikrobloga

Dostałem kod aplikacji w Java, którą trzeba będzie przepisać na .NET. Jako, że Jave znam średnio to utknąłem na następującym problemie.

Aplikacja napisana jest z wykorzystaniem Netbeans Platform. Komunikuje się bazą danych mySQL poprzez JPA. Zbudowana jest z kilku projektów. W jednym z nich (nazwijmy go dbLibrary) znajduje się plik persistance.xml w którym podaje się url, sterownik, nazwę użytkownika i hasło do bazy. Co ciekawe ten plik nie występuje Source Packages tylko w Libraries/dbLibrary.jar(Wrapped Library)/META-INF/persistance.xml.

Zmieniłem w tym pliku (persistance.xml) dane connection stringa do bazy na swoje, ale mimo to po uruchomieniu dostaję wyjątek który mówi, że aplikacja próbuje się połączyć z bazą przy użyciu starego (mimo wielokrotnych prób Clean and build).

Kompilacja projektu u mnie w netbeans wygląda tak, że na projekcie (suite) który trzyma wszystkie projekty razem klikam Run/Debug. Kompilacja każdego projektu osobno też nic nie dawała więc zdecydowałem się zdekompilować tę bibliotekę.

Dekompilacja ujawniła, że w wynikowym jarze w pliku persistance.xml dalej znajduje się stary connection string. Ktoś ma pomysł jak tę bibliotekę zrekompilować żeby zawierała nowy connection string?

#programowanie #java #netbeans
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czym w Javie budujesz? Może jako zależność podajesz starą wersję tej biblioteki w tym projekcie i ta wersja, którą nadpisujesz nie jest dołączana. Też może być problem, że nadpisujesz plik nie źródłowy tylko powstały po filtrowaniu pliku źródłowego.

@erwit: Bo klient/biznes sobie zażyczył bo teraz wszyscy tak mają ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@erwit: Tak jak koledzy wyżej napisali - bo nie działa i jest napisane do d--y :)

@wodaSpadaZWysoka: Ant.

Teraz widzę, że jak robię ręczny build problematycznego projektu to nowy jar trafia to folder główny/build/cluster/modules.dbLibrary.jar i jak go dekompiluję to nie ma w nim pliku packages.xml

Jeżeli pójdę do folderu dbLibrary/release/modules/ext to tam jest właściwy jar z plikiem persistance.xml ale starym connection stringiem. Wychodzi więc, że muszę zrobić release
  • Odpowiedz
Problem rozwiązany. Okazało się ze oprócz projektu dbLibrary będącego częścią całego projektu aplikacji istnieje inny o tej samej nazwie poza głównym projektem który jest dodany jako wrapped library i to w nim należało wyedytowac connection string
  • Odpowiedz