SQL Server的JSON响应问题。 (Eclipse,Rest WS,Jersey,Oracle WLS) [英] Problem in JSON response from SQL Server. (Eclipse,Rest WS,Jersey,Oracle WLS)

查看:67
本文介绍了SQL Server的JSON响应问题。 (Eclipse,Rest WS,Jersey,Oracle WLS)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

public class JSONClass {

	public JSONArray JsonArray(ResultSet rs) throws Exception {

		JSONArray JsonArray = new JSONArray();

		try {
			java.sql.ResultSetMetaData rsmd = rs.getMetaData();

			while (rs.next()) {
				int numColumn = rsmd.getColumnCount();
				JSONObject jsonObject = new JSONObject();

				for (int i = 1; i < numColumn + 1; i++) {
					String column_name = rsmd.getColumnName(i);

					if (rsmd.getColumnType(i) == java.sql.Types.ARRAY) {
						jsonObject.put(column_name, rs.getArray(column_name));
						System.out.println("JSONClass:ARRAY");
					} else if (rsmd.getColumnType(i) == java.sql.Types.VARCHAR) {
						jsonObject.put(column_name, rs.getNString(column_name));
						System.out.println("JSONClass:VARCHAR");
					} else if (rsmd.getColumnType(i) == java.sql.Types.INTEGER) {
						jsonObject.put(column_name, rs.getInt(i));
						System.out.println("JSONClass:INTEGER");
					} else if (rsmd.getColumnType(i) == java.sql.Types.TIMESTAMP) {
						jsonObject.put(column_name,
								rs.getTimestamp(column_name));
						System.out.println("JSONClass:TIMESTAMP");
					}

					else if (rsmd.getColumnType(i) == java.sql.Types.NUMERIC) {
						jsonObject.put(column_name,
								rs.getBigDecimal(column_name));
					} else if (rsmd.getColumnType(i) == java.sql.Types.BIGINT) {
						jsonObject.put(column_name, rs.getInt(column_name));
					} else if (rsmd.getColumnType(i) == java.sql.Types.BLOB) {
						jsonObject.put(column_name, rs.getBlob(column_name));
					} else if (rsmd.getColumnType(i) == java.sql.Types.BOOLEAN) {
						jsonObject.put(column_name, rs.getBoolean(column_name));
					} else if (rsmd.getColumnType(i) == java.sql.Types.DATE) {
						jsonObject.put(column_name, rs.getDate(column_name));
					} else if (rsmd.getColumnType(i) == java.sql.Types.FLOAT) {
						jsonObject.put(column_name, rs.getFloat(column_name));
					} else if (rsmd.getColumnType(i) == java.sql.Types.DOUBLE) {
						jsonObject.put(column_name, rs.getDouble(column_name));
					} else if (rsmd.getColumnType(i) == java.sql.Types.SMALLINT) {
						jsonObject.put(column_name, rs.getInt(column_name));
					} else {
						jsonObject.put(column_name, rs.getObject(column_name));
						System.out.println("JSONClass:Object" + column_name);
					}

				}// for end

				JsonArray.put(jsonObject);
			} // while end

		} catch (Exception e) {
			e.printStackTrace();
		}
		return JsonArray;
	}
}







这是我处理DataBase记录的JSON类。






This is my JSON class for processing DataBase records.

@Path("/v1/inventory")
public class Inventory {
	@GET
	@Produces(MediaType.APPLICATION_JSON)
	public Response returnAllInfo() throws Exception {
		Connection conn = null;
		PreparedStatement query = null;
		String returnString = null;
		Response rb = null;
		try {
			conn = DataBase.DBConn().getConnection();
			query = conn.prepareStatement("select * from WS");
			ResultSet rs = query.executeQuery();

			JSONClass JsonClassObject = new JSONClass();
			JSONArray GetJsonArray = new JSONArray();

			GetJsonArray = JsonClassObject.JsonArray(rs);
			query.close();
			returnString = GetJsonArray.toString();
			rb = Response.ok(returnString).build();

		} catch (Exception e) {
			e.printStackTrace();
		}

		finally {
			if (conn != null)
				conn.close();
		}
		return rb;
	}
}







这是用于填充响应的类客户端(通过浏览器上的URI)



(localhost:7001 / My_pkg / api / v1 / inventory)它给出一个空白页面,如果我做另一条路径则没有错误点击。

(localhost:7001 / My_pkg / api / v1 / status)它给我从DataBase记录:(



请帮助什么这是错误的。?





一些要点:

我使用SQL Server作为我的数据库源。

用于Web服务部署的Oracle WebLogic Server(12.1.3)。




this is the class for populating that response to client(via URI on browser)

(localhost:7001/My_pkg/api/v1/inventory) it gives a blank page and no error while if i do another path hit.
(localhost:7001/My_pkg/api/v1/status) it gives me record from DataBase :(

Kindly help what is wrong in it.?


Some points :
I am using SQL Server as my DB source.
Oracle WebLogic Server(12.1.3) for Web-Service deployment.

推荐答案

我通过更改Web.xml<解决了它; param-value>到我当前的包名..!;)
I solved it by changing the Web.xml <param-value> to my current package name..! ;)


这篇关于SQL Server的JSON响应问题。 (Eclipse,Rest WS,Jersey,Oracle WLS)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆