Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未找到Android MIME媒体类型应用程序/xml上的Jersey 1.8客户端_Android_Xml_Jersey - Fatal编程技术网

未找到Android MIME媒体类型应用程序/xml上的Jersey 1.8客户端

未找到Android MIME媒体类型应用程序/xml上的Jersey 1.8客户端,android,xml,jersey,Android,Xml,Jersey,我正在为我构建的web服务创建一个简单的Android客户端,以从XML获取列表 但我得到了这个线索: 8 16:07:39.272: E/ClientResponse(8460): A message body reader for Java class java.util.List, and Java type java.util.List<xx.xxxx.xxx.xxx.xxxx.xxxx.MessdatenPv>, and MIME media type applicatio

我正在为我构建的web服务创建一个简单的Android客户端,以从XML获取列表

但我得到了这个线索:

8 16:07:39.272: E/ClientResponse(8460): A message body reader for Java class java.util.List, and Java type java.util.List<xx.xxxx.xxx.xxx.xxxx.xxxx.MessdatenPv>, and MIME media type application/xml was not found
02-18 16:07:39.272: E/ClientResponse(8460): The registered message body readers compatible with the MIME media type are:
02-18 16:07:39.272: E/ClientResponse(8460): */* ->
02-18 16:07:39.272: E/ClientResponse(8460):   com.sun.jersey.core.impl.provider.entity.StringProvider
02-18 16:07:39.272: E/ClientResponse(8460):   com.sun.jersey.core.impl.provider.entity.ReaderProvider
02-18 16:07:39.272: W/dalvikvm(8460): threadid=16: thread exiting with uncaught exception (group=0x41ed2930)
02-18 16:07:39.272: E/AndroidRuntime(8460): FATAL EXCEPTION: Thread-764
02-18 16:07:39.272: E/AndroidRuntime(8460): com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java class java.util.List, and Java type java.util.List<xx.xxxx.xx.xx.xxxx.xxx.MessdatenPv>, and MIME media type application/xml was not found
02-18 16:07:39.272: E/AndroidRuntime(8460):     at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:549)
02-18 16:07:39.272: E/AndroidRuntime(8460):     at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:523)
02-18 16:07:39.272: E/AndroidRuntime(8460):     at com.sun.jersey.api.client.WebResource.handle(WebResource.java:686)
02-18 16:07:39.272: E/AndroidRuntime(8460):     at com.sun.jersey.api.client.WebResource.access$300(WebResource.java:74)
02-18 16:07:39.272: E/AndroidRuntime(8460):     at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:508)
02-18 16:07:39.272: E/AndroidRuntime(8460):     at com.example.monitor.thread.Login.verifyLogin(Login.java:74)
02-18 16:07:39.272: E/AndroidRuntime(8460):     at com.example.monitor.activity.LoginActivity$3.run(LoginActivity.java:152)
02-18 16:07:39.272: E/AndroidRuntime(8460):     at java.lang.Thread.run(Thread.java:856)
8 16:07:39.272:E/ClientResponse(8460):未找到Java类Java.util.List、Java类型Java.util.List和MIME媒体类型application/xml的消息体读取器
02-18 16:07:39.272:E/ClientResponse(8460):与MIME媒体类型兼容的已注册邮件正文读取器包括:
02-18 16:07:39.272:E/ClientResponse(8460):*/*->
02-18 16:07:39.272:E/ClientResponse(8460):com.sun.jersey.core.impl.provider.entity.StringProvider
02-18 16:07:39.272:E/ClientResponse(8460):com.sun.jersey.core.impl.provider.entity.ReaderProvider
02-18 16:07:39.272:W/dalvikvm(8460):threadid=16:线程退出时出现未捕获异常(组=0x41ed2930)
02-18 16:07:39.272:E/AndroidRuntime(8460):致命异常:线程764
02-18 16:07:39.272:E/AndroidRuntime(8460):com.sun.jersey.api.client.ClientHandlerException:未找到Java类Java.util.List、Java类型Java.util.List和MIME媒体类型application/xml的消息体读取器
02-18 16:07:39.272:E/AndroidRuntime(8460):位于com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:549)
02-18 16:07:39.272:E/AndroidRuntime(8460):位于com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:523)
02-18 16:07:39.272:E/AndroidRuntime(8460):位于com.sun.jersey.api.client.WebResource.handle(WebResource.java:686)
02-18 16:07:39.272:E/AndroidRuntime(8460):在com.sun.jersey.api.client.WebResource.access$300(WebResource.java:74)
02-18 16:07:39.272:E/AndroidRuntime(8460):位于com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:508)
02-18 16:07:39.272:E/AndroidRuntime(8460):在com.example.monitor.thread.Login.verifyLogin(Login.java:74)
02-18 16:07:39.272:E/AndroidRuntime(8460):在com.example.monitor.activity.LoginActivity$3.run(LoginActivity.java:152)
02-18 16:07:39.272:E/AndroidRuntime(8460):在java.lang.Thread.run(Thread.java:856)处
以下是客户:

ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource webResource = client.resource(getBaseURI());
List<MessdatenPv> listMessdatenPv = webResource.path("test").path("helloworld/getMessdatenPv").accept(MediaType.APPLICATION_XML).get(new GenericType<List<MessdatenPv>>() {});
ClientConfig config=newdefaultclientconfig();
Client=Client.create(config);
WebResource=client.resource(getBaseURI());
List listMessdatenPv=webResource.path(“test”).path(“helloworld/getMessdatenPv”).accept(MediaType.APPLICATION_XML.get(new GenericType(){});
以及网络服务:

@GET
@Path("/getMessdatenPv")
@Produces(MediaType.APPLICATION_XML)
public List<MessdatenPvCommon> getMessdatenPv() throws Exception {
            List<MessdatenPvCommon> messdatenPvList = getMessdaten();
            return messdatenPvList;
        }
@GET
@路径(“/getMessdatenPv”)
@生成(MediaType.APPLICATION\u XML)
公共列表getMessdatenPv()引发异常{
List messdatenPvList=getMessdaten();
返回messdatenPvList;
}
ServiceFinder$ServiceIteratorProvider

package com.example.monitor.activity;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;

import android.util.Log;

import com.sun.jersey.spi.service.ServiceFinder.ServiceIteratorProvider;

public class AndroidServiceIteratorProvider<T> extends ServiceIteratorProvider<T>
{

  private static final String TAG = AndroidServiceIteratorProvider.class.getSimpleName();

  private static final String MESSAGE = "Unable to load provider";

  private static final HashMap<String, String[]> SERVICES = new HashMap<String, String[]>();

  private static final String[] com_sun_jersey_spi_HeaderDelegateProvider = {"com.sun.jersey.core.impl.provider.header.MediaTypeProvider",
                                                                             "com.sun.jersey.core.impl.provider.header.StringProvider"};

  private static final String[] com_sun_jersey_spi_inject_InjectableProvider = {};

  private static final String[] javax_ws_rs_ext_MessageBodyReader = {"com.sun.jersey.core.impl.provider.entity.StringProvider",
                                                                     "com.sun.jersey.core.impl.provider.entity.ReaderProvider"};

  private static final String[] javax_ws_rs_ext_MessageBodyWriter = {"com.sun.jersey.core.impl.provider.entity.StringProvider",
                                                                     "com.sun.jersey.core.impl.provider.entity.ReaderProvider"};

  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);
    SERVICES.put("jersey-client-components", new String[] {});
    SERVICES.put("com.sun.jersey.client.proxy.ViewProxyProvider", new String[] {});
  }


  @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)
      {
        Log.v(TAG, MESSAGE, e);
      }
    }
    return classes.iterator();
  }


  @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)
      {
        Log.v(TAG, MESSAGE, e);
      }
      catch (InstantiationException e)
      {
        Log.v(TAG, MESSAGE, e);
      }
      catch (ClassNotFoundException e)
      {
        Log.v(TAG, MESSAGE, e);
      }
    }

    return classes.iterator();
  }
}
package com.example.monitor.activity;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.Iterator;
导入android.util.Log;
导入com.sun.jersey.spi.service.ServiceFinder.ServiceIteratorProvider;
公共类AndroidServiceIteratorProvider扩展了ServiceIteratorProvider
{
私有静态最终字符串标记=androidServiceInteratorProvider.class.getSimpleName();
私有静态最终字符串消息=“无法加载提供程序”;
private static final HashMap SERVICES=new HashMap();
私有静态最终字符串[]com_sun_jersey_spi_HeaderDelegateProvider={“com.sun.jersey.core.impl.provider.header.MediaTypeProvider”,
“com.sun.jersey.core.impl.provider.header.StringProvider”};
私有静态最终字符串[]com_sun_jersey_spi_injection_InjectableProvider={};
私有静态最终字符串[]javax_ws_rs_ext_MessageBodyReader={“com.sun.jersey.core.impl.provider.entity.StringProvider”,
“com.sun.jersey.core.impl.provider.entity.ReaderProvider”};
私有静态最终字符串[]javax_ws_rs_ext_MessageBodyWriter={“com.sun.jersey.core.impl.provider.entity.StringProvider”,
“com.sun.jersey.core.impl.provider.entity.ReaderProvider”};
静止的
{
SERVICES.put(“com.sun.jersey.spi.HeaderDelegateProvider”,com\u sun\u jersey\u spi\u HeaderDelegateProvider);
SERVICES.put(“com.sun.jersey.spi.inject.InjectableProvider”,com\u sun\u jersey\u spi\u InjectableProvider);
put(“javax.ws.rs.ext.MessageBodyReader”,javax\u ws\u rs\u ext\u MessageBodyReader);
put(“javax.ws.rs.ext.MessageBodyWriter”,javax\u ws\u rs\u ext\u MessageBodyWriter);
put(“jersey客户端组件”,新字符串[]{});
SERVICES.put(“com.sun.jersey.client.proxy.ViewProxyProvider”,新字符串[]{});
}
@抑制警告(“未选中”)
@凌驾
公共迭代器createClassIterator(类服务、字符串服务名、类加载器、布尔ignoreOnClassNotFound)
{
字符串[]classesNames=SERVICES.get(serviceName);
int length=classesNames.length;
ArrayList类=新的ArrayList(长度);
for(int i=0;i