Sākot ar ievadu, kļūda “javax.xml.bind neeksistē” ir viena no visbiežāk sastopamajām problēmām, ar ko saskaras izstrādātāji, pārejot no vecākām Java versijām uz jaunākām, jo īpaši no Java 8 uz Java 9 vai jaunāku. Šīs pārejas laikā var tikt parādīts šis ziņojums, kas norāda, ka trūkst noteiktas pakotnes, galvenokārt tāpēc, ka javax.xml.bind tika novecojis Java 9 un noņemts no Java 11.
Javax.xml.bind tiek izmantots Java Architecture for XML Binding (JAXB). To izmanto, lai pārveidotu Java objektus XML formātā un otrādi. JAXB nozīmi nevar pārvērtēt, jo tā nodrošina metodes darbību atcelšanai, maršalai un apstiprināšanai.
JDK problēmas un risinājums
Šī kļūdas ziņojuma galvenais iemesls ir tāds, ka līdz ar Java SE 9 un moduļu sistēmas izlaišanu dažas pakotnes tika noņemtas no noklusējuma klases ceļa, tostarp `javax.xml.bind`.
Lai veiktu ātru un pagaidu labojumu, varat izmantot komandrindas opciju “–add-modules”, ja programmu palaižat no komandrindas. Maven un citiem līdzīgiem veidošanas rīkiem varat pievienot nepieciešamās atkarības tieši failā pom.xml vai build.gradle.
<!-- This command tells Java to add the 'java.xml.bind' module to your classpath --> java --add-modules java.xml.bind YourApp
Tomēr, lai iegūtu pastāvīgāku risinājumu, it īpaši, ja plānojat migrēt savus projektus uz Java 11 un jaunākām versijām, jums ir manuāli jāiekļauj JAXB (javax.xml.bind) bibliotēka sava projekta klases ceļā.
JAXB atkarības pievienošana soli pa solim
Lai savā projektā iekļautu JAXB, vispirms savam pom.xml vai build.gradle ir jāpievieno atkarība jaxb-api. JAXB ieviešanu repozitorijā nodrošina `com.sun.xml.bind'.
<!-- In pom.xml, add the following dependencies -->
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0.1</version>
</dependency>
</dependencies>
Pēc šo atkarību iekļaušanas projektā problēmai ar “javax.xml.bind neeksistē” vajadzētu būt atrisinātai.
Izpratne par Java 9 un turpmāko izmaiņu ietekmi
Java 9 ieviesa jaunu moduļu sistēmu, kas būtiski ietekmēja to, kā izstrādātāji veido un pārvalda savas lietojumprogrammas. Padarot tādas pakotnes kā `javax.xml.bind` pēc noklusējuma nepieejamas, izstrādātāji bija spiesti vairāk apzināties savu projektu atkarības.
Šīs izmaiņas, lai gan sākotnēji bija satraucošas, beidzās ar labu praksi atkarības pārvaldībā, padarot projektus stabilākus un vieglāk uzturējamus ilgtermiņā.
Tomēr šīs izmaiņas nozīmē, ka izstrādātājiem ir jāiepazīstas ar jauno moduļu sistēmu un to, kā skaidrāk pārvaldīt atkarības. Taču ar zināmu praksi tādu problēmu risināšana, kas saistītas ar trūkstošajiem moduļiem Java 9 un jaunākās versijās, kļūst pārvaldāmas un pat otrreizējas.
Šī Java moduļu sistēmas pielāgošana liecina par tehnoloģiju attīstības raksturu un izstrādātāju spēju pielāgoties izmaiņām ar jaunu praksi.