SQL Server的JSON响应问题。 (Eclipse,Rest WS,Jersey,Oracle WLS) [英] Problem in JSON response from SQL Server. (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屋!