Ta reguła oznacza dyrektywy JSP taglib,
w przypadku których taka sama wartość atrybutu prefix
jest powiązana z różnymi wartościami atrybutów uri. Redefinicja zostanie oznaczona, jeśli występuje w obrębie tego
samego pliku JSP lub jeśli występuje w statycznie uwzględnianym
fragmencie lub pliku JSP.
Zgodnie ze specyfikacjami JSP 2.1 przedrostek nie powinien być redefiniowany w ramach aktualnego zasięgu pliku JSP. Jeśli przedrostek biblioteki znaczników został już zdefiniowany przy użyciu innego identyfikatora URI w pliku JSP lub w uwzględnianym fragmencie lub pliku JSP, produkt musi wygenerować błąd translacji. Specyfikacje JSP 2.1 stanowią nowość wprowadzoną na serwerze WebSphere Application Server 7. Sprawdzanie poprawności to nowość wprowadzona w tej wersji. Nie było ono wymuszane we wcześniejszych wersjach.
Sprawdzone rozwiązanie: zmień dyrektywę taglib tak,
aby używane były unikalne przedrostki i zaktualizuj plik JSP,
którego dotyczy ta zmiana, tak, aby używany był nowy przedrostek.
Jeśli nie chcesz zmieniać plików JSP, możesz przywrócić zachowanie
modułu WWW z wcześniejszych wersji, ustawiając następujący atrybut
JSP w pliku rozszerzeń WWW IBM (ibm-web-ext.xml):
<jsp-attribute name="allowTaglibPrefixRedefinition"
value="true"/>
Ewentualnie możesz ustawić właściwość niestandardową kontenera WWW
com.ibm.wsspi.jsp.allowtaglibprefixredefinition=true
tak, aby wpływała na wszystkie aplikacje na serwerze, a nie tylko
na konkretny moduł WWW (takie rozwiązanie oferuje pierwsza opcja).
W przykładzie 1 drugi wpis zostanie oznaczony, ponieważ stanowi
on redefinicję przedrostka fmt. W tym przykładzie narzędzie zarejestruje następujący komunikat
ostrzegawczy w dzienniku błędów platformy Eclipse:
!KOMUNIKAT CWMIG1125W: W pliku WebContent/Strona1.jsp została
podjęta próba zredefiniowania wartości identyfikatora URI w przypadku
przedrostka fmt z wartości /WEB-INF/fmt.tld na wartość /WEB-INF/innaBib.tld.
Reguła Nie redefiniuj przedrostka biblioteki taglib przy użyciu innego identyfikatora URI
napotkała problem podczas analizowania pliku /MyJspProject/WebContent/Page1.jsp
w projekcie MyJspProject.
Plik mojaStrona.jspf zawiera wiersz:
W przykładzie 2 wiersz taglib w pliku mojaStrona.jspf
zostanie oznaczony. W tym przykładzie zostanie wyświetlone następujące
ostrzeżenie, które zostanie zarejestrowane w dzienniku błędów platformy
Eclipse:
!KOMUNIKAT CWMIG1124W: W pliku WebContent/mojaStrona.jspf została
podjęta próba zredefiniowania wartości identyfikatora w przypadku
przedrostka fmt z wartości /WEB-INF/fmt.tld na wartość /WEB-INF/innaBib.tld
w ramach zasięgu pliku WebContent/Strona2.jsp.
Reguła Nie redefiniuj przedrostka biblioteki taglib przy użyciu innego identyfikatora URI
napotkała problem podczas analizowania pliku /MyJspProject/WebContent/Page2.jsp w projekcie MyJspProject.
Skorzystaj z informacji zawartych w dzienniku błędów, aby znaleźć pliki powodujące konflikt. Uwzględniany plik JSP może powodować występowanie redefinicji w wielu podstawowych plikach JSP w różnych zasięgach. W takim przypadku plik może zostać oznaczony wiele razy, przy czym jedna poprawka rozwiąże wiele problemów. Może się tak zdarzyć, że ten sam plik uwzględniany redefiniuje identyfikator URI biblioteki znaczników różnie w zależności od pliku JSP, w którym jest on uwzględniany. Dlatego rejestrowany jest każdy błąd.
Aby otworzyć dziennik błędów platformy Eclipse, kliknij opcję
Okna > Pokaż widok > Inny > Dziennik błędów.
Informacje dodatkowe: