首页 > 解决方案 > 动态网络项目

问题描述

我正在尝试编写一个从 api 获取详细信息并解析 Json 数据并在浏览器中显示输出的休息服务我正在尝试在 tomcat 服务器上运行该项目。

这是 MessageService 类

package com.crunchify.restjersey;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import java.util.Scanner;
import org.json.simple.JSONArray;
import sun.misc.BASE64Encoder;
public class MessageService {
 public List<Object> getMessages() throws Exception {
     String inline = "";
    List<Object> list = new ArrayList<>();
  String url = "https://*****";            //an api
  String name = "******";
  String password = "********";
  String authString = name + ":" + password;
  String authStringEnc = new BASE64Encoder().encode(authString.getByte()); 
  Client restClient = Client.create();
  WebResource webResource = restClient.resource(url);
  ClientResponse resp = webResource.accept("application/json")
                     .header("Authorization", "Basic " + authStringEnc)
                     .get(ClientResponse.class);
    if(resp.getStatus() != 200){
        System.err.println("Unable to connect to the server");
    }
    String output = resp.getEntity(String.class);
        JSONParser parse = new JSONParser();
        JSONObject jobj = (JSONObject)parse.parse(output);
        JSONArray jsonarr_1 = (JSONArray) jobj.get("list");

        for(int i=0;i<jsonarr_1.size();i++){
        JSONObject jsonobj_1 = (JSONObject)jsonarr_1.get(i);
        JSONObject jive      = (JSONObject)jsonobj_1.get("jive");
        Object obj1 = jsonobj_1.get("displayname");
        Object obj2 = jive.get("username");
        list.add(obj1);
    list.add(obj2);

         }
   return  list;
 }
  }  

这是 ReporteesList 课程,我将在上面的课程中

   package com.crunchify.restjersey;
   import javax.ws.rs.GET;
   import javax.ws.rs.Path;
   import javax.ws.rs.PathParam;
   import javax.ws.rs.Produces;
   import javax.ws.rs.core.Response;
   import org.json.JSONException;
   import org.json.JSONObject;
   import java.util.ArrayList;
   import java.util.List;

   @Path("/Reportees")
    public class ReporteesList {
MessageService messageservice = new MessageService();
@GET
  @Produces("MediaType.TEXT_HTML")
  public List<Object> getMsg() throws Exception {

    return messageservice.getMessages();
    }
      } 

我的 pom.xml 文件:

   <dependency>
    <groupId>asm</groupId>
    <artifactId>asm</artifactId>
    <version>3.3.1</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.8</version>
</dependency>
<dependency>
        <groupId>asm</groupId>
            <artifactId>asm</artifactId>
             <version>3.3.1</version>
    </dependency>
    <dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-bundle</artifactId>
    <version>1.19.4</version>
</dependency>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20170516</version>
</dependency>
<dependency>

            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-moxy</artifactId>
             <version>2.13</version>

</dependency>

    <dependency>
           <groupId>com.googlecode.json-simple</groupId>
           <artifactId>json-simple</artifactId>
           <version>1.1.1</version>
     </dependency>

      <dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.19.4</version>
  </dependency>

   <dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-core</artifactId>
    <version>1.19.4</version>
   </dependency>

     </dependencies>
  </project>

我只需要在浏览器中打印显示名和用户名。

但是在tomcat服务器上运行时出现此错误

   SEVERE: StandardWrapper.Throwable
   java.lang.IllegalArgumentException: java.text.ParseException: End   of  header com.sun.jersey.core.header.MediaTypes.createQualitySourceMediaType

标签: java

解决方案


推荐阅读