Hi Lucas,
Thanks for posting, this is useful information. I suspect we can write  
some code to automatically generate such a class for use on Android.
Paul.
On Aug 25, 2010, at 8:15 AM, Lucas Ventura wrote:
>
> Hi!
> Sorry for not posting my temporary solution. At the end I didn't use  
> Jersey
> as client in Android anyway.
> In the client class:
>
> Client client = ApacheHttpClient.create();
> ServiceFinder.setIteratorProvider(new Buscador());
>
> The Buscador class is:
>
> import java.util.ArrayList;
> import java.util.HashMap;
> import java.util.Iterator;
>
> import  
> com.sun.jersey.spi.service.ServiceFinder.ServiceIteratorProvider;
>
> public class Buscador<T> extends ServiceIteratorProvider<T>
> {
> 	private static final HashMap<String, String[]> SERVICES = new
> HashMap<String, String[]>();
>
> 	private static final String[]  
> com_sun_jersey_spi_HeaderDelegateProvider =
> new String[] {
> 			"com.sun.jersey.core.impl.provider.header.LocaleProvider",
> 			"com.sun.jersey.core.impl.provider.header.EntityTagProvider",
> 			"com.sun.jersey.core.impl.provider.header.MediaTypeProvider",
> 			"com.sun.jersey.core.impl.provider.header.CacheControlProvider",
> 			"com.sun.jersey.core.impl.provider.header.NewCookieProvider",
> 			"com.sun.jersey.core.impl.provider.header.CookieProvider",
> 			"com.sun.jersey.core.impl.provider.header.URIProvider",
> 			"com.sun.jersey.core.impl.provider.header.DateProvider",
> 			"com.sun.jersey.core.impl.provider.header.StringProvider"
>
> 	};
> 	private static final String[]  
> com_sun_jersey_spi_inject_InjectableProvider
> = new String[] {
> 			"com.sun.jersey.core.impl.provider.xml.SAXParserContextProvider",
> 			"com 
> .sun.jersey.core.impl.provider.xml.XMLStreamReaderContextProvider",
> 			"com 
> .sun.jersey.core.impl.provider.xml.DocumentBuilderFactoryProvider",
> 			"com.sun.jersey.core.impl.provider.xml.TransformerFactoryProvider"
> 	};
> 	private static final String[] javax_ws_rs_ext_MessageBodyReader = new
> String[] {
> 			"com.sun.jersey.core.impl.provider.entity.StringProvider",
> 			"com.sun.jersey.core.impl.provider.entity.ByteArrayProvider",
> 			"com.sun.jersey.core.impl.provider.entity.FileProvider",
> 			"com.sun.jersey.core.impl.provider.entity.InputStreamProvider",
> 			"com.sun.jersey.core.impl.provider.entity.DataSourceProvider",
> 			"com.sun.jersey.core.impl.provider.entity.RenderedImageProvider",
> 			"com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider",
> 			"com.sun.jersey.core.impl.provider.entity.FormProvider",
> 			"com 
> .sun.jersey.core.impl.provider.entity.FormMultivaluedMapProvider",
> 			"com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider 
> $App",
> 			"com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider 
> $Text",
> 		
> "com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider 
> $General",
> 			"com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider 
> $App",
> 			"com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider 
> $Text",
> 		
> "com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider 
> $General",
> 			"com.sun.jersey.core.impl.provider.entity.XMLListElementProvider 
> $App",
> 			"com.sun.jersey.core.impl.provider.entity.XMLListElementProvider 
> $Text",
> 		
> "com.sun.jersey.core.impl.provider.entity.XMLListElementProvider 
> $General",
> 			"com.sun.jersey.core.impl.provider.entity.ReaderProvider",
> 			"com.sun.jersey.core.impl.provider.entity.DocumentProvider",
> 		
> "com.sun.jersey.core.impl.provider.entity.SourceProvider 
> $StreamSourceReader",
> 		
> "com.sun.jersey.core.impl.provider.entity.SourceProvider 
> $SAXSourceReader",
> 		
> "com.sun.jersey.core.impl.provider.entity.SourceProvider 
> $DOMSourceReader",
> 			"com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider 
> $App",
> 			"com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider 
> $Text",
> 			"com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider 
> $General",
> 			"com.sun.jersey.core.impl.provider.entity.EntityHolderReader"
> 	};
> 	private static final String[] javax_ws_rs_ext_MessageBodyWriter = new
> String[] {
> 			"com.sun.jersey.core.impl.provider.entity.StringProvider",
> 			"com.sun.jersey.core.impl.provider.entity.ByteArrayProvider",
> 			"com.sun.jersey.core.impl.provider.entity.FileProvider",
> 			"com.sun.jersey.core.impl.provider.entity.InputStreamProvider",
> 			"com.sun.jersey.core.impl.provider.entity.DataSourceProvider",
> 			"com.sun.jersey.core.impl.provider.entity.RenderedImageProvider",
> 			"com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider",
> 			"com.sun.jersey.core.impl.provider.entity.FormProvider",
> 			"com 
> .sun.jersey.core.impl.provider.entity.FormMultivaluedMapProvider",
> 			"com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider 
> $App",
> 			"com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider 
> $Text",
> 		
> "com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider 
> $General",
> 			"com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider 
> $App",
> 			"com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider 
> $Text",
> 		
> "com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider 
> $General",
> 			"com.sun.jersey.core.impl.provider.entity.XMLListElementProvider 
> $App",
> 			"com.sun.jersey.core.impl.provider.entity.XMLListElementProvider 
> $Text",
> 		
> "com.sun.jersey.core.impl.provider.entity.XMLListElementProvider 
> $General",
> 			"com.sun.jersey.core.impl.provider.entity.ReaderProvider",
> 			"com.sun.jersey.core.impl.provider.entity.DocumentProvider",
> 			"com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider",
> 			"com.sun.jersey.core.impl.provider.entity.SourceProvider 
> $SourceWriter"
> 	};
>
> 	static
> 	{
> 		SERVICES.put("com.sun.jersey.spi.HeaderDelegateProvider",
> 			com_sun_jersey_spi_HeaderDelegateProvider);
> 		SERVICES.put("com.sun.jersey.spi.inject.InjectableProvider",
> 			com_sun_jersey_spi_inject_InjectableProvider);
> 		SERVICES.put("javax.ws.rs.ext.MessageBodyReader",
> javax_ws_rs_ext_MessageBodyReader);
> 		SERVICES.put("javax.ws.rs.ext.MessageBodyWriter",
> javax_ws_rs_ext_MessageBodyWriter);
> 	}
>
> 	@SuppressWarnings("unchecked")
> 	@Override
> 	public Iterator<Class<T>> createClassIterator(Class<T> service,  
> String
> serviceName,
> 		ClassLoader loader, boolean ignoreOnClassNotFound)
> 	{
> 		String[] classesNames = SERVICES.get(serviceName);
> 		int length = classesNames.length;
> 		ArrayList<Class<T>> classes = new ArrayList<Class<T>>(length);
> 		for (int i = 0; i < length; i++)
> 		{
> 			try
> 			{
> 				classes.add((Class<T>) Class.forName(classesNames[i]));
> 			} catch (ClassNotFoundException e)
> 			{
> 				e.printStackTrace();
> 			}
> 		}
> 		return null;
> 	}
>
> 	@Override
> 	public Iterator<T> createIterator(Class<T> service, String  
> serviceName,
> ClassLoader loader,
> 		boolean ignoreOnClassNotFound)
> 	{
> 		String[] classesNames = SERVICES.get(serviceName);
> 		int length = classesNames.length;
> 		ArrayList<T> classes = new ArrayList<T>(length);
> 		for (int i = 0; i < length; i++)
> 		{
> 			try
> 			{
> 				 
> classes 
> .add(service.cast(Class.forName(classesNames[i]).newInstance()));
> 			} catch (IllegalAccessException e)
> 			{
> 				e.printStackTrace();
> 			} catch (InstantiationException e)
> 			{
> 				e.printStackTrace();
> 			} catch (ClassNotFoundException e)
> 			{
> 				e.printStackTrace();
> 			}
> 		}
> 		return classes.iterator();
> 	}
> }
>
> This is based in the original Jersey look-up-for-services classes ;)
> -- 
> View this message in context: http://jersey.576304.n2.nabble.com/java-lang-NullPointerException-on-Android-tp4212447p5459910.html
> Sent from the Jersey mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>