podmiana pliku w jar

0

Witam

Chciałem użyć jsf w appengine i aby tego dokonać należy wprowadzić parę modyfikacji w pliku jar. Mianowicie w jsf-impl-2.1.7 należy zmodyfikować i podmienić WebConfiguration.class. Nie mam pojęcia jak to zrobić. Mam WebConfiguration.java z wprowadzonymi już zmianami ale nie wiem jak przekompilować to na *.class i dodać do jar'a . Wiem że można ściągnąć jsf'a w postaci open source(wtedy w pliku jar mamy *.java) i tam można podmienić ten plik ale dalej nie mam pojęcia jak to skompilować aby w jarze były pliki *.class :/ Podmianę tego pliku w open souce'owej wersji robię na zasadzie wypakuj archiwum i podmień zadaną klasę. Jednakże w tym miejscu stanąłem ponieważ nie wiem jak te pliki znowu zamienić na jar'a tak żeby w środku były pliki *.class: /

Pozdr.

0

Kompilujesz:
javac -cp jsf.jar;. WebConfiguration.java (jesli linux to -cp jsf.jar:.)

i dostajesz plik class (lub kilka, jesli byly klasy zagniezdzone lub wiecej klas niepublicznych). Nastepnie tego jara otwierasz w winzip czy cokolwiek (tak, jar to zip) i po prostu podmieniasz pliki tak jakbys to robil w zipie.

Dziwi mnie, ze piszesz appa dla appengine w jsf a nie znasz takich podstaw.

0

no właśnie sęk w tym że to nie działa, bo próbowałem tak wcześniej (tylko bez ";." po jarze)... Wywala mi masę errorów że nie znaleziono symbolu, albo nie znaleziono pakietu :/
krok po kroku:

Untitled.png

ściągam sobie ze strony mojary tego jara w postaci binary (pliki *.class). nazwa pliku javax.faces-2.1.7 .
wrzucam do jednego folderu plik javax.faces-2.1.7 i mój zmodyfikowany WebConfiguration.java,
następnie wykonuje javac -cp javax.faces-2.1.7;. WebConfiguration.java
i tutaj wywalają się błędy. Próbowałem nawet z open source'ową wersją (w ramach desperacji :/ ) ale wtedy wywala jeszcze więcej errorów.
Zapewne robię jakąś straszną głupotę :/

Mnie też to dziwi... Ale umieszczenie aplikacji na appengine nie sprawiło mi tylu kłopotów co to :/

0

WinRar-em? Ja tak zawsze podmieniam pliki w JAR-ach (pojedyncze .java). Jeśli jest problem z kompilacją a musisz coś zmienić, spróbuj to po prostu zrobić na poziomie bytecodu (pod warunkiem, że nie ma tego zbyt wiele) i zastąpić skompilowane pliki w archiwum JAR.

0

Musisz dodac jeszcze servletow, np. ten tu:
http://search.maven.org/remotecontent?filepath=org/apache/geronimo/specs/geronimo-servlet_3.0_spec/1.0/geronimo-servlet_3.0_spec-1.0.jar
i wtedy:
javac -cp jsr.jar;servlet.jar;. WebConfiguration.java

Oczywiscie zmien nazwy plikow na takie jakie masz.

0

Taka uwaga jeszcze na przyszlosc: w tym wypadku masz tylko brakujace referencje do ServletContext - w takim razie, mozesz sprawdzic jeszcze jakie metody sa wywolywane, napisac sobie sam ServletContext.java (w odpowiednim pakiecie) i skompilowac - taki trik zeby nie dociagac calego jara po to zeby dostac jedna klase.

0

dzięki za pomoc :) ...teraz działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1