public static void beforeCreate(List<PortRefData> portRefData) { // Axis JAXWS api is non compliant and checks system property before classloader // so we replace system property so this wrapper is selected. The original value // is saved into an openejb property so we can load the class in the find method String oldProperty = System.getProperty(JAXWSPROVIDER_PROPERTY); if (oldProperty != null && !oldProperty.equals(ProviderWrapper.class.getName())) { System.setProperty("openejb." + JAXWSPROVIDER_PROPERTY, oldProperty); System.setProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); } System.setProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); if (oldClassLoader != null) { Thread.currentThread().setContextClassLoader(new ProviderClassLoader(oldClassLoader)); } else { Thread.currentThread().setContextClassLoader(new ProviderClassLoader()); } threadPortRefs.set(new ProviderWrapperData(portRefData, oldClassLoader)); }
public static void beforeCreate(final List<PortRefData> portRefData, final JaxWsServiceReference.WebServiceClientCustomizer customizer, final Properties properties) { // Axis JAXWS api is non compliant and checks system property before classloader // so we replace system property so this wrapper is selected. The original value // is saved into an openejb property so we can load the class in the find method final String oldProperty = JavaSecurityManagers.getSystemProperty(JAXWSPROVIDER_PROPERTY); if (oldProperty != null && !oldProperty.equals(ProviderWrapper.class.getName())) { JavaSecurityManagers.setSystemProperty("openejb." + JAXWSPROVIDER_PROPERTY, oldProperty); JavaSecurityManagers.setSystemProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); } if (oldProperty == null || !oldProperty.equals(ProviderWrapper.class.getName())) { JavaSecurityManagers.setSystemProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); } final ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); if (oldClassLoader != null) { Thread.currentThread().setContextClassLoader(new ProviderClassLoader(oldClassLoader)); } else { Thread.currentThread().setContextClassLoader(new ProviderClassLoader()); } threadPortRefs.set(new ProviderWrapperData(portRefData, oldClassLoader, customizer, properties)); }
public static void beforeCreate(final List<PortRefData> portRefData, final JaxWsServiceReference.WebServiceClientCustomizer customizer, final Properties properties) { // Axis JAXWS api is non compliant and checks system property before classloader // so we replace system property so this wrapper is selected. The original value // is saved into an openejb property so we can load the class in the find method final String oldProperty = System.getProperty(JAXWSPROVIDER_PROPERTY); if (oldProperty != null && !oldProperty.equals(ProviderWrapper.class.getName())) { System.setProperty("openejb." + JAXWSPROVIDER_PROPERTY, oldProperty); System.setProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); } System.setProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); final ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); if (oldClassLoader != null) { Thread.currentThread().setContextClassLoader(new ProviderClassLoader(oldClassLoader)); } else { Thread.currentThread().setContextClassLoader(new ProviderClassLoader()); } threadPortRefs.set(new ProviderWrapperData(portRefData, oldClassLoader, customizer, properties)); }