java - 动态网络项目
问题描述
我正在尝试编写一个从 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
解决方案
推荐阅读
- reactjs - 在 FieldArray 中添加对象不会呈现页面
- android - 我如何使用 java 代码在 android 上创建设计
- python - 由于文本中的“\”,Python JSON 解析失败
- c - 当我在 While 循环中使用浮点值时,为什么我的程序会进入无限循环?
- javascript - 日历完全加载后的完整日历 4 回调
- angular - 如何在插值中写入条件而不是 *ngIf
- javascript - 正常的 jquery id #selector 是否适用于 Ajax json 响应的 html?
- java - 如何保留集合中元素的引用以实现 Java 中的 O(1) 可访问性
- c - 如何使用 C 附加 .txt 文件的第一行?
- c# - Dataflowblock 停止更新 UI 但仍运行该操作?