You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2012/12/20 15:44:13 UTC

svn commit: r1424496 - /openejb/trunk/openejb/server/openejb-client/src/main/java/org/apache/openejb/client/JaxWsProviderWrapper.java

Author: andygumbrecht
Date: Thu Dec 20 14:44:13 2012
New Revision: 1424496

URL: http://svn.apache.org/viewvc?rev=1424496&view=rev
Log:
Try a local temp file on error.

Modified:
    openejb/trunk/openejb/server/openejb-client/src/main/java/org/apache/openejb/client/JaxWsProviderWrapper.java

Modified: openejb/trunk/openejb/server/openejb-client/src/main/java/org/apache/openejb/client/JaxWsProviderWrapper.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-client/src/main/java/org/apache/openejb/client/JaxWsProviderWrapper.java?rev=1424496&r1=1424495&r2=1424496&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-client/src/main/java/org/apache/openejb/client/JaxWsProviderWrapper.java (original)
+++ openejb/trunk/openejb/server/openejb-client/src/main/java/org/apache/openejb/client/JaxWsProviderWrapper.java Thu Dec 20 14:44:13 2012
@@ -17,67 +17,68 @@
  */
 package org.apache.openejb.client;
 
-import javax.xml.ws.spi.Provider;
-import javax.xml.ws.spi.ServiceDelegate;
-import javax.xml.ws.Endpoint;
+import org.w3c.dom.Element;
+
+import javax.jws.WebService;
+import javax.xml.bind.JAXBContext;
+import javax.xml.namespace.QName;
+import javax.xml.transform.Source;
 import javax.xml.ws.BindingProvider;
 import javax.xml.ws.Dispatch;
+import javax.xml.ws.Endpoint;
+import javax.xml.ws.EndpointReference;
 import javax.xml.ws.Service;
 import javax.xml.ws.WebServiceException;
-import javax.xml.ws.EndpointReference;
 import javax.xml.ws.WebServiceFeature;
-import javax.xml.ws.wsaddressing.W3CEndpointReference;
-import javax.xml.ws.soap.SOAPBinding;
 import javax.xml.ws.handler.HandlerResolver;
-import javax.xml.namespace.QName;
-import javax.xml.bind.JAXBContext;
-import javax.xml.transform.Source;
-import javax.jws.WebService;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.List;
-import java.util.Properties;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.ArrayList;
-import java.util.logging.Logger;
-import java.util.logging.Level;
-import java.util.concurrent.Executor;
+import javax.xml.ws.soap.SOAPBinding;
+import javax.xml.ws.spi.Provider;
+import javax.xml.ws.spi.ServiceDelegate;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
-import java.io.BufferedReader;
 import java.io.InputStreamReader;
-import java.io.IOException;
 import java.io.OutputStream;
-import java.io.FileOutputStream;
-import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
-
-import org.w3c.dom.Element;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.Executor;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 public class JaxWsProviderWrapper extends Provider {
+
     private static final Logger logger = Logger.getLogger("OpenEJB.client");
 
     //
     // Magic to get our proider wrapper installed with the PortRefData
     //
 
-    private static ThreadLocal<ProviderWrapperData> threadPortRefs = new ThreadLocal<ProviderWrapperData>();
+    private static final ThreadLocal<ProviderWrapperData> threadPortRefs = new ThreadLocal<ProviderWrapperData>();
 
-    public static void beforeCreate(List<PortRefMetaData> portRefMetaDatas) {
+    public static void beforeCreate(final List<PortRefMetaData> portRefMetaDatas) {
         // 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);
+        final String oldProperty = System.getProperty(JAXWSPROVIDER_PROPERTY);
         if (oldProperty != null && !oldProperty.equals(JaxWsProviderWrapper.class.getName())) {
             System.setProperty("openejb." + JAXWSPROVIDER_PROPERTY, oldProperty);
         }
 
         System.setProperty(JAXWSPROVIDER_PROPERTY, JaxWsProviderWrapper.class.getName());
 
-        ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+        final ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
         if (oldClassLoader != null) {
             Thread.currentThread().setContextClassLoader(new ProviderClassLoader(oldClassLoader));
         } else {
@@ -92,16 +93,16 @@ public class JaxWsProviderWrapper extend
     }
 
     private static class ProviderWrapperData {
+
         private final List<PortRefMetaData> portRefMetaData;
         private final ClassLoader callerClassLoader;
 
-        public ProviderWrapperData(List<PortRefMetaData> portRefMetaDatas, ClassLoader callerClassLoader) {
+        public ProviderWrapperData(final List<PortRefMetaData> portRefMetaDatas, final ClassLoader callerClassLoader) {
             this.portRefMetaData = portRefMetaDatas;
             this.callerClassLoader = callerClassLoader;
         }
     }
 
-
     //
     // Provider wappre implementation
     //
@@ -118,66 +119,75 @@ public class JaxWsProviderWrapper extend
         return delegate;
     }
 
-    public ServiceDelegate createServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class serviceClass) {
+    @Override
+    public ServiceDelegate createServiceDelegate(final URL wsdlDocumentLocation, final QName serviceName, final Class<? extends Service> serviceClass) {
         ServiceDelegate serviceDelegate = delegate.createServiceDelegate(wsdlDocumentLocation, serviceName, serviceClass);
         serviceDelegate = new ServiceDelegateWrapper(serviceDelegate);
         return serviceDelegate;
     }
 
-    public Endpoint createEndpoint(String bindingId, Object implementor) {
+    @Override
+    public Endpoint createEndpoint(final String bindingId, final Object implementor) {
         return delegate.createEndpoint(bindingId, implementor);
     }
 
-    public Endpoint createAndPublishEndpoint(String address, Object implementor) {
+    @Override
+    public Endpoint createAndPublishEndpoint(final String address, final Object implementor) {
         return delegate.createAndPublishEndpoint(address, implementor);
     }
 
-    public W3CEndpointReference createW3CEndpointReference(String address,
-            QName serviceName,
-            QName portName,
-            List<Element> metadata,
-            String wsdlDocumentLocation,
-            List<Element> referenceParameters) {
+    @Override
+    public W3CEndpointReference createW3CEndpointReference(final String address,
+                                                           final QName serviceName,
+                                                           final QName portName,
+                                                           final List<Element> metadata,
+                                                           final String wsdlDocumentLocation,
+                                                           final List<Element> referenceParameters) {
 
         return (W3CEndpointReference) invoke21Delegate(delegate, createW3CEndpointReference,
-                address,
-                serviceName,
-                portName,
-                metadata,
-                wsdlDocumentLocation,
-                referenceParameters);
+                                                       address,
+                                                       serviceName,
+                                                       portName,
+                                                       metadata,
+                                                       wsdlDocumentLocation,
+                                                       referenceParameters);
     }
 
-    public EndpointReference readEndpointReference(Source source){
+    @Override
+    public EndpointReference readEndpointReference(final Source source) {
         return (EndpointReference) invoke21Delegate(delegate, readEndpointReference, source);
     }
 
+    @Override
     @SuppressWarnings({"unchecked"})
-    public <T> T getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features) {
+    public <T> T getPort(final EndpointReference endpointReference, final Class<T> serviceEndpointInterface, final WebServiceFeature... features) {
         return (T) invoke21Delegate(delegate, providerGetPort, endpointReference, serviceEndpointInterface, features);
     }
 
     private class ServiceDelegateWrapper extends ServiceDelegate {
+
         private final ServiceDelegate serviceDelegate;
 
-        public ServiceDelegateWrapper(ServiceDelegate serviceDelegate) {
+        public ServiceDelegateWrapper(final ServiceDelegate serviceDelegate) {
             this.serviceDelegate = serviceDelegate;
         }
 
-        public <T> T getPort(QName portName, Class<T> serviceEndpointInterface) {
-            T t = serviceDelegate.getPort(portName, serviceEndpointInterface);
+        @Override
+        public <T> T getPort(final QName portName, final Class<T> serviceEndpointInterface) {
+            final T t = serviceDelegate.getPort(portName, serviceEndpointInterface);
             setProperties((BindingProvider) t, portName);
             return t;
         }
 
-        public <T> T getPort(Class<T> serviceEndpointInterface) {
-            T t = serviceDelegate.getPort(serviceEndpointInterface);
+        @Override
+        public <T> T getPort(final Class<T> serviceEndpointInterface) {
+            final T t = serviceDelegate.getPort(serviceEndpointInterface);
 
             QName qname = null;
             if (serviceEndpointInterface.isAnnotationPresent(WebService.class)) {
-                WebService webService = serviceEndpointInterface.getAnnotation(WebService.class);
-                String targetNamespace = webService.targetNamespace();
-                String name = webService.name();
+                final WebService webService = serviceEndpointInterface.getAnnotation(WebService.class);
+                final String targetNamespace = webService.targetNamespace();
+                final String name = webService.name();
                 if (targetNamespace != null && targetNamespace.length() > 0 && name != null && name.length() > 0) {
                     qname = new QName(targetNamespace, name);
                 }
@@ -187,128 +197,142 @@ public class JaxWsProviderWrapper extend
             return t;
         }
 
-        public void addPort(QName portName, String bindingId, String endpointAddress) {
+        @Override
+        public void addPort(final QName portName, final String bindingId, final String endpointAddress) {
             serviceDelegate.addPort(portName, bindingId, endpointAddress);
         }
 
-        public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Service.Mode mode) {
-            Dispatch<T> dispatch = serviceDelegate.createDispatch(portName, type, mode);
+        @Override
+        public <T> Dispatch<T> createDispatch(final QName portName, final Class<T> type, final Service.Mode mode) {
+            final Dispatch<T> dispatch = serviceDelegate.createDispatch(portName, type, mode);
             setProperties(dispatch, portName);
             return dispatch;
         }
 
-        public Dispatch<Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode) {
-            Dispatch<Object> dispatch = serviceDelegate.createDispatch(portName, context, mode);
+        @Override
+        public Dispatch<Object> createDispatch(final QName portName, final JAXBContext context, final Service.Mode mode) {
+            final Dispatch<Object> dispatch = serviceDelegate.createDispatch(portName, context, mode);
             setProperties(dispatch, portName);
             return dispatch;
         }
 
+        @Override
         @SuppressWarnings({"unchecked"})
-        public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Service.Mode mode, WebServiceFeature... features) {
+        public <T> Dispatch<T> createDispatch(final QName portName, final Class<T> type, final Service.Mode mode, final WebServiceFeature... features) {
             return (Dispatch<T>) invoke21Delegate(serviceDelegate, createDispatchInterface,
-                    portName,
-                    type,
-                    mode,
-                    features);
+                                                  portName,
+                                                  type,
+                                                  mode,
+                                                  features);
         }
 
+        @Override
         @SuppressWarnings({"unchecked"})
-        public Dispatch<java.lang.Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode, WebServiceFeature... features) {
+        public Dispatch<java.lang.Object> createDispatch(final QName portName, final JAXBContext context, final Service.Mode mode, final WebServiceFeature... features) {
             return (Dispatch<Object>) invoke21Delegate(serviceDelegate, createDispatchJaxBContext,
-                    portName,
-                    context,
-                    mode,
-                    features);
+                                                       portName,
+                                                       context,
+                                                       mode,
+                                                       features);
         }
 
+        @Override
         @SuppressWarnings({"unchecked"})
         public Dispatch<Object> createDispatch(
-                EndpointReference endpointReference,
-                JAXBContext context,
-                Service.Mode mode,
-                WebServiceFeature... features) {
+                final EndpointReference endpointReference,
+                final JAXBContext context,
+                final Service.Mode mode,
+                final WebServiceFeature... features) {
             return (Dispatch<Object>) invoke21Delegate(serviceDelegate, createDispatchReferenceJaxB,
-                    endpointReference,
-                    context,
-                    mode,
-                    features);
+                                                       endpointReference,
+                                                       context,
+                                                       mode,
+                                                       features);
         }
 
+        @Override
         @SuppressWarnings({"unchecked"})
-        public <T> Dispatch<T> createDispatch(EndpointReference endpointReference,
-                                               java.lang.Class<T> type,
-                                               Service.Mode mode,
-                                               WebServiceFeature... features) {
+        public <T> Dispatch<T> createDispatch(final EndpointReference endpointReference,
+                                              final java.lang.Class<T> type,
+                                              final Service.Mode mode,
+                                              final WebServiceFeature... features) {
             return (Dispatch<T>) invoke21Delegate(serviceDelegate, createDispatchReferenceClass,
-                    endpointReference,
-                    type,
-                    mode,
-                    features);
+                                                  endpointReference,
+                                                  type,
+                                                  mode,
+                                                  features);
 
         }
+
+        @Override
         @SuppressWarnings({"unchecked"})
-        public <T> T getPort(QName portName, Class<T> serviceEndpointInterface, WebServiceFeature... features) {
+        public <T> T getPort(final QName portName, final Class<T> serviceEndpointInterface, final WebServiceFeature... features) {
             return (T) invoke21Delegate(serviceDelegate, serviceGetPortByQName,
-                    portName,
-                    serviceEndpointInterface,
-                    features);
+                                        portName,
+                                        serviceEndpointInterface,
+                                        features);
         }
 
+        @Override
         @SuppressWarnings({"unchecked"})
-        public <T> T getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features) {
+        public <T> T getPort(final EndpointReference endpointReference, final Class<T> serviceEndpointInterface, final WebServiceFeature... features) {
             return (T) invoke21Delegate(serviceDelegate, serviceGetPortByEndpointReference,
-                    endpointReference,
-                    serviceEndpointInterface,
-                    features);
+                                        endpointReference,
+                                        serviceEndpointInterface,
+                                        features);
         }
 
+        @Override
         @SuppressWarnings({"unchecked"})
-        public <T> T getPort(Class<T> serviceEndpointInterface, WebServiceFeature... features) {
+        public <T> T getPort(final Class<T> serviceEndpointInterface, final WebServiceFeature... features) {
             return (T) invoke21Delegate(serviceDelegate, serviceGetPortByInterface,
-                    serviceEndpointInterface,
-                    features);
+                                        serviceEndpointInterface,
+                                        features);
         }
 
+        @Override
         public QName getServiceName() {
-            QName qName = serviceDelegate.getServiceName();
-            return qName;
+            return serviceDelegate.getServiceName();
         }
 
+        @Override
         public Iterator<QName> getPorts() {
-            Iterator<QName> ports = serviceDelegate.getPorts();
-            return ports;
+            return serviceDelegate.getPorts();
         }
 
+        @Override
         public URL getWSDLDocumentLocation() {
-            URL documentLocation = serviceDelegate.getWSDLDocumentLocation();
-            return documentLocation;
+            return serviceDelegate.getWSDLDocumentLocation();
         }
 
+        @Override
         public HandlerResolver getHandlerResolver() {
-            HandlerResolver handlerResolver = serviceDelegate.getHandlerResolver();
-            return handlerResolver;
+            return serviceDelegate.getHandlerResolver();
         }
 
-        public void setHandlerResolver(HandlerResolver handlerResolver) {
+        @Override
+        public void setHandlerResolver(final HandlerResolver handlerResolver) {
             serviceDelegate.setHandlerResolver(handlerResolver);
         }
 
+        @Override
         public Executor getExecutor() {
-            Executor executor = serviceDelegate.getExecutor();
-            return executor;
+            return serviceDelegate.getExecutor();
         }
 
-        public void setExecutor(Executor executor) {
+        @Override
+        public void setExecutor(final Executor executor) {
             serviceDelegate.setExecutor(executor);
         }
 
-        private void setProperties(BindingProvider proxy, QName qname) {
-            for (PortRefMetaData portRef : portRefs) {
+        private void setProperties(final BindingProvider proxy, final QName qname) {
+            for (final PortRefMetaData portRef : portRefs) {
                 Class<?> intf = null;
                 if (portRef.getServiceEndpointInterface() != null) {
                     try {
                         intf = proxy.getClass().getClassLoader().loadClass(portRef.getServiceEndpointInterface());
                     } catch (ClassNotFoundException e) {
+                        logger.log(Level.INFO, "Not loading: " + portRef.getServiceEndpointInterface());
                     }
                 }
                 if ((qname != null && qname.equals(portRef.getQName())) || (intf != null && intf.isInstance(proxy))) {
@@ -318,15 +342,15 @@ public class JaxWsProviderWrapper extend
                     }
 
                     // set mtom
-                    boolean enableMTOM = portRef.isEnableMtom();
+                    final boolean enableMTOM = portRef.isEnableMtom();
                     if (enableMTOM && proxy.getBinding() instanceof SOAPBinding) {
-                        ((SOAPBinding)proxy.getBinding()).setMTOMEnabled(enableMTOM);
+                        ((SOAPBinding) proxy.getBinding()).setMTOMEnabled(enableMTOM);
                     }
 
                     // set properties
-                    for (Map.Entry<Object, Object> entry : portRef.getProperties().entrySet()) {
-                        String name = (String) entry.getKey();
-                        String value = (String) entry.getValue();
+                    for (final Map.Entry<Object, Object> entry : portRef.getProperties().entrySet()) {
+                        final String name = (String) entry.getKey();
+                        final String value = (String) entry.getValue();
                         proxy.getRequestContext().put(name, value);
                     }
 
@@ -338,7 +362,8 @@ public class JaxWsProviderWrapper extend
 
     private static Provider findProvider() {
         ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-        if (classLoader == null) classLoader = ClassLoader.getSystemClassLoader();
+        if (classLoader == null)
+            classLoader = ClassLoader.getSystemClassLoader();
 
         // 0. System.getProperty("openejb.javax.xml.ws.spi.Provider")
         // This is so those using old axis rules still work as expected
@@ -350,7 +375,7 @@ public class JaxWsProviderWrapper extend
 
         // 1. META-INF/services/javax.xml.ws.spi.Provider
         try {
-            for (URL url : Collections.list(classLoader.getResources("META-INF/services/" + JAXWSPROVIDER_PROPERTY))) {
+            for (final URL url : Collections.list(classLoader.getResources("META-INF/services/" + JAXWSPROVIDER_PROPERTY))) {
                 BufferedReader in = null;
                 try {
                     in = new BufferedReader(new InputStreamReader(url.openStream()));
@@ -365,22 +390,24 @@ public class JaxWsProviderWrapper extend
                     if (in != null) {
                         try {
                             in.close();
-                        } catch (IOException e) {
+                        } catch (Throwable e) {
+                            //ignore
                         }
                     }
                 }
             }
         } catch (Exception ingored) {
+            logger.log(Level.INFO, "No META-INF/services/javax.xml.ws.spi.Provider found");
         }
 
         // 2. $java.home/lib/jaxws.properties
-        String javaHome = System.getProperty("java.home");
-        File jaxrpcPropertiesFile = new File(new File(javaHome, "lib"), "jaxrpc.properties");
+        final String javaHome = System.getProperty("java.home");
+        final File jaxrpcPropertiesFile = new File(new File(javaHome, "lib"), "jaxrpc.properties");
         if (jaxrpcPropertiesFile.exists()) {
             InputStream in = null;
             try {
                 in = new FileInputStream(jaxrpcPropertiesFile);
-                Properties properties = new Properties();
+                final Properties properties = new Properties();
                 properties.load(in);
 
                 providerClass = properties.getProperty(JAXWSPROVIDER_PROPERTY);
@@ -388,12 +415,13 @@ public class JaxWsProviderWrapper extend
                 if (provider != null) {
                     return provider;
                 }
-            } catch(Exception ignored) {
+            } catch (Exception ignored) {
             } finally {
                 if (in != null) {
                     try {
                         in.close();
-                    } catch (IOException e) {
+                    } catch (Throwable e) {
+                        //Ignore
                     }
                 }
             }
@@ -429,10 +457,10 @@ public class JaxWsProviderWrapper extend
         throw new WebServiceException("No " + JAXWSPROVIDER_PROPERTY + " implementation found");
     }
 
-    private static Provider createProviderInstance(String providerClass, ClassLoader classLoader) {
+    private static Provider createProviderInstance(final String providerClass, final ClassLoader classLoader) {
         if (providerClass != null && providerClass.length() > 0 && !providerClass.equals(JaxWsProviderWrapper.class.getName())) {
             try {
-                Class<? extends Provider> clazz = classLoader.loadClass(providerClass).asSubclass(Provider.class);
+                final Class<? extends Provider> clazz = classLoader.loadClass(providerClass).asSubclass(Provider.class);
                 return clazz.newInstance();
             } catch (Throwable e) {
                 logger.log(Level.WARNING, "Unable to construct provider implementation " + providerClass, e);
@@ -442,18 +470,47 @@ public class JaxWsProviderWrapper extend
     }
 
     private static class ProviderClassLoader extends ClassLoader {
+
         private static final String PROVIDER_RESOURCE = "META-INF/services/" + JAXWSPROVIDER_PROPERTY;
         private static final URL PROVIDER_URL;
+
         static {
+
+            File tempFile = null;
+
             try {
-                File tempFile = File.createTempFile("openejb-jaxws-provider", "tmp");
+
+                try {
+                    tempFile = File.createTempFile("openejb-jaxws-provider", "tmp");
+                } catch (Throwable e) {
+                    final File dir = new File("tmp");
+                    if (!dir.exists() && !dir.mkdirs()) {
+                        throw new Exception("Failed to create: " + dir.getAbsolutePath());
+                    }
+                    tempFile = File.createTempFile("openejb-jaxws-provider", "tmp", dir);
+                }
+
                 tempFile.deleteOnExit();
-                OutputStream out = new FileOutputStream(tempFile);
-                out.write(JaxWsProviderWrapper.class.getName().getBytes());
+
+                OutputStream out = null;
+                try {
+                    out = new FileOutputStream(tempFile);
+                    out.write(JaxWsProviderWrapper.class.getName().getBytes());
+                } finally {
+                    if (null != out) {
+                        try {
+                            out.close();
+                        } catch (Throwable e) {
+                            //Ignore
+                        }
+                    }
+                }
+
                 out.close();
                 PROVIDER_URL = tempFile.toURI().toURL();
-            } catch (IOException e) {
-                throw new ClientRuntimeException("Cound not create openejb-jaxws-provider file");
+
+            } catch (Throwable e) {
+                throw new ClientRuntimeException("Failed to create openejb-jaxws-provider file: " + tempFile, e);
             }
         }
 
@@ -462,14 +519,15 @@ public class JaxWsProviderWrapper extend
         public ProviderClassLoader() {
         }
 
-        public ProviderClassLoader(ClassLoader parent) {
+        public ProviderClassLoader(final ClassLoader parent) {
             super(parent);
         }
 
-        public Enumeration<URL> getResources(String name) throws IOException {
+        @Override
+        public Enumeration<URL> getResources(final String name) throws IOException {
             Enumeration<URL> resources = super.getResources(name);
             if (enabled && PROVIDER_RESOURCE.equals(name)) {
-                ArrayList<URL> list = new ArrayList<URL>();
+                final ArrayList<URL> list = new ArrayList<URL>();
                 list.add(PROVIDER_URL);
                 list.addAll(Collections.list(resources));
                 resources = Collections.enumeration(list);
@@ -477,8 +535,8 @@ public class JaxWsProviderWrapper extend
             return resources;
         }
 
-
-        public URL getResource(String name) {
+        @Override
+        public URL getResource(final String name) {
             if (enabled && PROVIDER_RESOURCE.equals(name)) {
                 return PROVIDER_URL;
             }
@@ -490,12 +548,12 @@ public class JaxWsProviderWrapper extend
     // Delegate methods for JaxWS 2.1
     //
 
-    private static Object invoke21Delegate(Object delegate, Method method, Object... args) {
+    private static Object invoke21Delegate(final Object delegate, final Method method, final Object... args) {
         if (method == null) {
             throw new UnsupportedOperationException("JaxWS 2.1 APIs are not supported");
         }
         try {
-            return method.invoke(delegate,args);
+            return method.invoke(delegate, args);
         } catch (IllegalAccessException e) {
             throw new WebServiceException(e);
         } catch (InvocationTargetException e) {
@@ -524,23 +582,25 @@ public class JaxWsProviderWrapper extend
         Method method = null;
         try {
             method = Provider.class.getMethod("createW3CEndpointReference",
-                    String.class,
-                    QName.class,
-                    QName.class,
-                    List.class,
-                    String.class,
-                    List.class);
+                                              String.class,
+                                              QName.class,
+                                              QName.class,
+                                              List.class,
+                                              String.class,
+                                              List.class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         createW3CEndpointReference = method;
 
         method = null;
         try {
             method = Provider.class.getMethod("getPort",
-                    EndpointReference.class,
-                    Class.class,
-                    WebServiceFeature[].class);
+                                              EndpointReference.class,
+                                              Class.class,
+                                              WebServiceFeature[].class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         providerGetPort = method;
 
@@ -548,80 +608,87 @@ public class JaxWsProviderWrapper extend
         try {
             method = Provider.class.getMethod("readEndpointReference", Source.class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         readEndpointReference = method;
 
-
         method = null;
         try {
             method = ServiceDelegate.class.getMethod("createDispatch",
-                    EndpointReference.class,
-                    JAXBContext.class,
-                    Service.Mode.class,
-                    WebServiceFeature[].class);
+                                                     EndpointReference.class,
+                                                     JAXBContext.class,
+                                                     Service.Mode.class,
+                                                     WebServiceFeature[].class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         createDispatchReferenceJaxB = method;
 
         method = null;
         try {
             method = ServiceDelegate.class.getMethod("createDispatch",
-                    EndpointReference.class,
-                    Class.class,
-                    Service.Mode.class,
-                    WebServiceFeature[].class);
+                                                     EndpointReference.class,
+                                                     Class.class,
+                                                     Service.Mode.class,
+                                                     WebServiceFeature[].class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         createDispatchReferenceClass = method;
 
         method = null;
         try {
             method = ServiceDelegate.class.getMethod("createDispatch",
-                    QName.class,
-                    JAXBContext.class,
-                    Service.Mode.class,
-                    WebServiceFeature[].class);
+                                                     QName.class,
+                                                     JAXBContext.class,
+                                                     Service.Mode.class,
+                                                     WebServiceFeature[].class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         createDispatchJaxBContext = method;
 
         method = null;
         try {
             method = ServiceDelegate.class.getMethod("createDispatch",
-                    QName.class,
-                    Class.class,
-                    Service.Mode.class,
-                    WebServiceFeature[].class);
+                                                     QName.class,
+                                                     Class.class,
+                                                     Service.Mode.class,
+                                                     WebServiceFeature[].class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         createDispatchInterface = method;
 
         method = null;
         try {
             method = ServiceDelegate.class.getMethod("getPort",
-                    EndpointReference.class,
-                    Class.class,
-                    WebServiceFeature[].class);
+                                                     EndpointReference.class,
+                                                     Class.class,
+                                                     WebServiceFeature[].class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         serviceGetPortByEndpointReference = method;
 
         method = null;
         try {
             method = ServiceDelegate.class.getMethod("getPort",
-                    QName.class,
-                    Class.class,
-                    WebServiceFeature[].class);
+                                                     QName.class,
+                                                     Class.class,
+                                                     WebServiceFeature[].class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         serviceGetPortByQName = method;
 
         method = null;
         try {
             method = ServiceDelegate.class.getMethod("getPort",
-                    Class.class,
-                    WebServiceFeature[].class);
+                                                     Class.class,
+                                                     WebServiceFeature[].class);
         } catch (NoSuchMethodException e) {
+            //Ignore
         }
         serviceGetPortByInterface = method;
     }