Ez a szabály a Java Architecture for XML Binding (JAXB) inicializálási osztály változásaihoz és konfliktusaihoz kapcsolódik, amelyek olyankor fordulnak elő, amikor a WebSphere Application Server 7.0 előtti változatairól tér át. Két olyan JAXB áttérési példahelyzet van, amelyek ügyfélalkalmazásokkal kapcsolatot problémákat okoztak. Ez első a világhálós szolgáltatások WebSphere 6.1 szolgáltatáscsomagjáról átállított alkalmazásokhoz kapcsolódik. A második példahelyzet olyan ügyfélalkalmazásokhoz kapcsolódik, amelyek JAXB megvalósítást csomagolnak be és WebSphere 7.0 vagy újabb változatra lesznek átállítva.
A WebSphere 7.0 változatban a JAXB 2.1 a Java 6 futási környezet részeként
kerül szállításra.
A V7.0 előtt a WebSphere 6.1 Feature Pack for Web Services a
JAXB 2.0 változatot adta, amely más inicializálási osztályt használ,
mint a JAXB 2.1 vagy 2.2 (V8.0).
Ha az alkalmazás a régi inicializálási osztály
használatát adja meg, akkor az osztály nem található kivételek keletkezhetnek,
amikor az alkalmazást futtatják.
Az inicializálási osztály a
javax.xml.bind.context.factory tulajdonság segítségével
határozható meg. A régi inicializálási osztály: com.sun.xml.bind.ContextFactory.
Ha a régi osztálynév a Javax.xml.bind.context.factory tulajdonságban van beállítva, akkor kap egy -java.lang.ClassNotFoundException a Java 6 termékkel elérhető JAXB könyvtárak használatakor.
Ez a szabály az Javax.xml.bind.JAXBContext.newInstance metódus, amely a JAXBContextlekérdezésére szolgál. JAXB
használata esetén ellenőrizze, hogy alkjalmazása a régi kontextusgyártót
használja-e. A szabály a "com.sun.xml.bind" karaktersorozatot is észleli.ContextFactory" vagy " com.sun.xml.bind.DefaultJAXBContextImpl " Java kódban, de nem elemzi a tulajdonságfájlokat, ahol ezek az értékek gyakran be vannak állítva.
Java rendszertulajdonságokban szintén
beállíthatók.
A JAXB tulajdonságok általában a jaxb.properties fájlból kerülnek
betöltésre. Kézi úton elemezve az alkalmazás tulajdonságfájlait állapítsa meg,
hogy a régi kontextusgyártó van-e megadva.
A tulajdonságfájlok elemzéséhez az Eclipse rendszerben, válassza ki a Keresés > Fájl... funkciót.
A Tartalmazza a következő szöveget mezőbe írja be com.sun.xml.bind.ContextFactory.
A File name patterns
mezőbe írja be a következőt: *.properties.
Ismételje meg a karaktersorozat keresését Com.sun.xml.bind.DefaultJAXBContextImpl.
A JAXB WebSphere V7 vagy V8használatakor az alapértelmezett inicializálási osztály:
Com.ibm.xml.xlxp2.jaxb.JAXBContextFactory ha nem
Javax.xml.bind.context.factory tulajdonság be van állítva.
A második példahelyzet esetében a 7-es változat előtt az alkalmazás csomagjának részekén JAXB megvalósítást elhelyező ügyfelek szintén tapasztalhatják az imént leírt problémákat vagy viselkedésváltozásokat, amikor WebSphere 7.0 vagy újabb változatra állnak át. Ez olyankor fordul elő, amikor a Java futási környezet részeként adott JAXB 2.1 vagy 2.2 változat kerül betöltésre az alkalmazással szállított JAXB megvalósítás helyett. A Külső JAX-WS alkalmazás engedélyezése WebSphere Application Server 7-es változatban című cikk leírja, hogyan lehet a betöltő problémákat áthidalni, ha továbbra is a saját JAXB megvalósítását kívánja használni.
További információkért tekintse meg a következő hivatkozásokat: