Java >> Java tutorial >  >> Tag >> XML

Java 10:Erstatning for java.xml.ws konflikt

Bare brug Java 11 :) Der er ingen javax.xml.ws modul der, så ingen konflikt.

Hvad angår Java 10, er den nemmeste løsning at ændre omfanget af jaxws-ri til runtime :

<dependency>
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-ri</artifactId>
    <version>2.3.0</version>
    <scope>runtime</scope>
</dependency>

Ved at tilføje requires java.xml.ws du fortæller modulsystemet, at du er afhængig af det forældede Java EE-modul java.xml.ws , som den derefter vil løse og gøre tilgængelig. Samtidig ser det ud til, at der er et modul af samme navn på modulstien. (Måske en JAR trukket ind af jaxws-ri ?)

Selvom jeg kommer til at tænke over det, ville jeg have forventet en compiler-meddelelse, der klagede over duplikerede moduler... Det ser ud til, at fejlen (er det compiler eller runtime?) kommer fra en IDE. Hvad sker der, hvis du kører buildet med Maven?

Anyways, hvis du er villig til at starte med Java 11, kan du prøve det. Java EE-modulerne er fjernet, så der er ingen chance for, at et platformsmodul forstyrrer. Jeg er ikke sikker på, om det er muligt at tilføje en java.* modul på modulstien, dog.

Hvis det ikke er det, eller du foretrækker at holde dig til Java 10, bør du tage et kig på opgraderbare moduler og --upgrade-module-path mulighed. På den måde kan du bruge de JAR'er, der leverer JAX WS API til at erstatte platformmodulet.


Java tag