I donβt know the exact reason why it cannot find the required class, but I think that this is some problem with (or function) the Java class loader in the Oracle database when searching for resources.
I downloaded the JAX-WS reference implementation from java.net with all its dependencies with the SYS user (with sharing permissions and public synonyms). But classes created from the WSDL service are loaded into the SCOTT user schema. And for some reason, when SCOTT starts the procedures that use the service, javax.xml.ws.spi.FactoryFinder looks for the name of the implementation in the META-INF/services/javax.xml.ws.spi.Provider resource (which has the correct value com.sun.xml.ws.spi.ProviderImpl ), but cannot find this resource, so it tries to load the provider from hard-coded ( com.sun.xml.internal.ws.spi.ProviderImpl ) and fails.
The solution for me was to upload all META-INF/services/* files from all JAX-WS RI and jar dependencies to the SCOTT schema. An alternative way would be to load all JAX-WS RI, dependencies, and the final program onto the same circuit.
source share