Toto pravidlo souvisí se změnami třídy inicializace Java Architecture for XML Binding (JAXB) a konflikty, k nimž může dojít při migraci z verzí produktu WebSphere Application Server před V7.0. Existují dva scénáře migrace JAXB, které způsobují problémy se zákaznickými aplikacemi. První souvisí s aplikacemi migrovanými z produktu WebSphere 6.1 Feature Pack for Web Services. Druhý scénář souvisí se zákaznickými aplikacemi, které balí implementaci JAXB a jsou migrovány na WebSphere V7.0 nebo novější.
V produktu WebSphere V7.0 se JAXB 2.1 dodává jako součást běhového prostředí Java 6.
Před verzí 7.0 byl produkt WebSphere 6.1 Feature Pack for Web Services dodán s JAXB 2.0, který používal jinou inicializační třídu, než je použito v JAXB 2.1 nebo 2.2 (V8.0).
Pokud aplikace určuje použití staré inicializační třídy, výjimky pro nenalezené třídy lze generovat při spuštění aplikace.
Inicializační třída může být definována pomocí vlastnosti javax.xml.bind.context.factory. Stará třída inicializace je com.sun.xml.bind.ContextFactory.
Je-li starý název třídy nastaven na vlastnosti javax.xml.bind.context.factory, získáte java.lang.ClassNotFoundException při použití
knihoven JAXB dostupných s jazykem Java 6.
Toto pravidlo skenuje pro metodu javax.xml.bind.JAXBContext.newInstance, která se
používá k získání JAXBContext. Používáte-li JAXB, měli byste zkontrolovat aplikaci pro použití staré továrny kontextu. Pravidlo také zjistí řetězcové literály
"com.sun.xml.bind.ContextFactory" nebo"com.sun.xml.bind.DefaultJAXBContextImpl" v kódu jazyka Java,
ale neskenuje soubory vlastností, kde jsou tyto hodnoty často nastaveny.
Lze je také nastavit v systémových vlastnostech Java.
Vlastnosti JAXB se běžně načítají ze souboru jaxb.properties. Procházejte soubory vlastností aplikace ručně a určete, zda je definována stará továrna kontextu.
Chcete-li skenovat soubory vlastností v Eclipse, vyberte nabídku Vyhledat > Soubor....
Do pole Obsahující text zadejte com.sun.xml.bind.ContextFactory.
Do pole Vzory názvů souborů zadejte *.properties.
Zopakujte hledání pro řetězec com.sun.xml.bind.DefaultJAXBContextImpl.
Při použití JAXB v produktu WebSphere V7 nebo V8 je výchozí třída inicializace
com.ibm.xml.xlxp2.jaxb.JAXBContextFactory, pokud není nastavena žádná
vlastnost javax.xml.bind.context.factory.
V případě druhého scénáře mohou zákazníci, kteří zabalili implementaci JAXB jako součást své aplikace před verzí V7, rovněž zažít právě popsané problémy nebo změny chování při migraci na WebSphere V7.0 nebo novější. K tomu dojde v případě, že jsou verze JAXB 2.1 nebo 2.2 poskytované jako načtená součást běhového prostředí Java, nikoli jako implementace JAXB dodaná s aplikací. Článek Povolení aplikace JAX-WS třetí strany na serveru WebSphere Application Server V7 popisuje způsob práce s problémy zavaděče tříd v případě, že chcete pokračovat v používání implementace JAXB.
Další informace naleznete v následujících odkazech.