При переходе с Java 8 на Java 11 и переходе с EE на новейшие библиотеки Jakarta в соответствии с https://wiki.eclipse.org/New_Maven_Coordinates и Maven central, мы получаем следующее исключение времени выполнения в нашем (все еще основанном на SOAP) клиентском приложении:
Exception in thread "main" javax.xml.ws.WebServiceException: Provider com.sun.xml.internal.ws.spi.ProviderImpl not found
at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:31)
at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:28)
at javax.xml.ws.spi.ServiceLoaderUtil.newInstance(ServiceLoaderUtil.java:73)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:82)
at javax.xml.ws.spi.Provider.provider(Provider.java:66)
at javax.xml.ws.Service.<init>(Service.java:82)
at [...]
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.ws.spi.ProviderImpl
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at javax.xml.ws.spi.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:60)
at javax.xml.ws.spi.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:93)
at javax.xml.ws.spi.ServiceLoaderUtil.newInstance(ServiceLoaderUtil.java:71)
... 5 more
Решение, описанное в Получение java.lang.ClassNotFoundException: com.sun.xml.internal.ws.spi.ProviderImpl, несмотря на определение зависимостей не работает и не использует Джакарту.
Если я не ошибаюсь, библиотеки Jarkarta не должны содержать пакеты "com.sun.xml." Или ссылки на них, но javax.xml.ws.spi.Provider , очевидно, все еще ссылаются такой класс:
private static final String DEFAULT_JAXWSPROVIDER =
"com.sun"+".xml.internal.ws.spi.ProviderImpl";
Итак, кто-нибудь знает, есть ли в Джакарте эквивалент отсутствующей библиотеки, содержащей ProviderImpl, или как я мог обойти проблему с Джакартой?
Заранее спасибо!