web-dev-qa-db-fra.com

Obtention de Java.lang.ClassNotFoundException: com.Sun.xml.internal.ws.spi.ProviderImpl malgré les dépendances définies

Malgré cela, j'ai défini les dépendances associées, comme je l'ai ajouté ci-dessous, en obtenant l'exception Java.lang.ClassNotFoundException: com.Sun.xml.internal.ws.spi.ProviderImpl lorsque mon application appelle le service Web.

<dependency>
  <groupId>javax.xml.ws</groupId>
  <artifactId>jaxws-api</artifactId>
  <version>2.2.10</version>
</dependency>

<dependency>
  <groupId>com.Sun.xml.ws</groupId>
  <artifactId>jaxws-rt</artifactId>
  <version>2.2.10</version>
  <type>pom</type>
</dependency>

p.s. Le conteneur de servlet est Apache Tomcat 9.0.4.

p.s. Version Java: 9.0.1.

7
talha06

Il semble que vous deviez peut-être inclure cette dépendance:

<dependency>
    <groupId>com.Sun.xml.ws</groupId>
    <artifactId>rt</artifactId>
    <version>2.2.10</version>
</dependency>

Ou (vous ne l'avez pas encore vérifié, mais cela devrait fonctionner), vous devrez peut-être modifier l'étendue à importer pour la dépendance POM.

<dependency>
  <groupId>com.Sun.xml.ws</groupId>
  <artifactId>jaxws-rt</artifactId>
  <version>2.2.10</version>
  <type>pom</type>
  <scope>import</scope> 
</dependency>
4
reta

On dirait que la classe com.Sun.xml.internal.ws.spi.ProviderImpl n'est pas disponible dans jdk-9

jshell> Class.forName("com.Sun.xml.internal.ws.spi.ProviderImpl")
|  Java.lang.ClassNotFoundException thrown: com.Sun.xml.internal.ws.spi.ProviderImpl
|        at URLClassLoader.findClass (URLClassLoader.Java:466)
|        at DefaultLoaderDelegate$RemoteClassLoader.findClass (DefaultLoaderDelegate.Java:66)
|        at ClassLoader.loadClass (ClassLoader.Java:543)
|        at ClassLoader.loadClass (ClassLoader.Java:476)
|        at Class.forName0 (Native Method)
|        at Class.forName (Class.Java:292)
|        at (#1:1)

qui est disponible dans jdk-8, je me demande si vous pouvez utiliser jdk-8 si possible pourrait résoudre le problème.

2
Roshane Perera

La première partie de la réponse de @reta fonctionne pour moi. Voici les dépendances pertinentes de mon pom (Java 10):

<dependency>
  <groupId>javax.xml.ws</groupId>
  <artifactId>jaxws-api</artifactId>
  <version>2.3.1</version>
</dependency>
<dependency>
  <groupId>com.Sun.xml.ws</groupId>
  <artifactId>rt</artifactId>
  <version>2.3.1</version>
</dependency>
1