ich versuche gerade einen Android Jax-RS Client mit Jersey zu gestalten. Wenn ich den gleichen Code in doInBackground in einen normaler Main ausführe, funktioniert alles. Im Android Client bekomme ich immer eine NPE in der Klasse ClientResponse weil der in MediaType der delegater null ist
private static final HeaderDelegate<MediaType> delegate =
RuntimeDelegate.getInstance().createHeaderDelegate(MediaType.class);
public class RetreiveATask extends
AsyncTask<String, Void, A> {
private final Client client = Client.create();
@Override
protected A doInBackground(String... param) {
WebResource webResource = client
.resource("http://host:port/"
+ param[0]);
A a= webResource.accept(MediaType.APPLICATION_JSON)
.get(A.class);
System.out.println(a);
return a;
}
Was mache ich falsch? Jersey Client 1.9.1
EDIT:
Bin noch weiter gestept und habe gesehen, dass gar kein Provider angelegt wird
public AbstractRuntimeDelegate() {
for (HeaderDelegateProvider p : ServiceFinder.find(HeaderDelegateProvider.class, true))
hps.add(p);
/**
* Construct a map for quick look up of known header classes
*/
map.put(EntityTag.class, _createHeaderDelegate(EntityTag.class));
map.put(MediaType.class, _createHeaderDelegate(MediaType.class));
map.put(CacheControl.class, _createHeaderDelegate(CacheControl.class));
map.put(NewCookie.class, _createHeaderDelegate(NewCookie.class));
map.put(Cookie.class, _createHeaderDelegate(Cookie.class));
map.put(URI.class, _createHeaderDelegate(URI.class));
map.put(Date.class, _createHeaderDelegate(Date.class));
map.put(String.class, _createHeaderDelegate(String.class));
}
*** Edit ***
Hab das hier mal probiert aber klappt beider nicht
*** Edit ***
Mit https://code.google.com/p/google-gson/ gehts einfach