javaee / metro-jax-ws

https://javaee.github.io/metro-jax-ws/
Other
132 stars 68 forks source link

File in META-INF/services has deprecated name #1237

Closed jcflack closed 5 years ago

jcflack commented 6 years ago

This issue is a crosspost of javaee/metro-saaj#95.

I had an application that was written back when J2SE included SAAJ, so of course it broke after upgrading from Java 8, and I grabbed jaxws-ri from Maven and put the necessary jars on the classpath and the application worked again, but with this warning:

Using deprecated META-INF/services mechanism with non-standard property:
javax.xml.soap.MetaFactory. Property javax.xml.soap.SAAJMetaFactory should be used instead.

The application calls SOAPConnectionFactory.newInstance and MessageFactory.newInstance, ultimately causing the ServiceLoader to find the META-INF/services/javax.xml.soap.MetaFactory file.

I was able to make the warning go away by modifying saaj-impl.jar, simply extracting the javax.xml.soap.MetaFactory service file, deleting it from the jar, then re-adding it under the non-deprecated name javax.xml.soap.SAAJMetaFactory. With that, my application worked fine and gave no warning, though someone more knowledgeable than I will have to judge whether that's a fully correct fix.

kulwinderjit commented 5 years ago

System.setProperty("javax.xml.soap.SAAJMetaFactory", "com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl"); should make this warning go away

lukasj commented 5 years ago

fixed in saaj 1.5.1, se https://github.com/eclipse-ee4j/metro-saaj/issues/95