我是 JSON 编程的新手。我正在尝试编写一个 Web 服务来从 SQLite 表中获取数据并将输出写入 JSON 文件。我已将 JSON 简单 jar 添加到我的 eclipse 项目中。当我添加如下所示的一行代码时,
JSONObject obj = new JSONObject();
它编译正确。但是,当调用 web 服务时,我在这一行得到一个异常,如下所示,
Exception: java.lang.reflect.InvocationTargetException Message: java.lang.reflect.InvocationTargetException
这是我完整的java文件...
package wtp;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
public class CollegeProcessor2 {
public static String fetchCollegeList2(String input)
{
Connection c = null;
Statement stmt = null;
String output = null;
java.util.Date date= new java.util.Date();
JSONObject collegeList = new JSONObject();
JSONObject college = new JSONObject();
JSONArray list = new JSONArray();
try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Vevin.Kumar\\workspace\\JSONProject\\collegelist.db");
c.setAutoCommit(false);
System.out.println("Opened database successfully");
stmt = c.createStatement();
ResultSet rs = stmt.executeQuery( "SELECT * FROM COLLEGES WHERE DISTRICT LIKE \"" + input +"\" ;");
ResultSetMetaData metaData = rs.getMetaData();
int numberOfColumns=metaData.getColumnCount();
while ( rs.next() ) {
for(int i = 1; i <= numberOfColumns; i++)
{
college.put(String.valueOf(metaData.getColumnName(i)), String.valueOf(rs.getObject(i)));
}
list.add(college);
}
collegeList.put("collegeslist", list);
rs.close();
stmt.close();
c.close();
} catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
System.exit(0);
}
try{
FileWriter file = new FileWriter("c:\\json_outputs\\collegelist_" + date.getTime() +".json");
file.write(collegeList.toJSONString());
file.flush();
file.close();
} catch ( IOException e ){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
System.exit(0);
}
System.out.println("Operation done successfully");
output = "c:\\json_outputs\\collegelist_" + date.getTime() +".json";
return output;
}
/*public static void main (String[] args)
{
String output = fetchCollegeList2("CHENNAI");
System.out.println(output);
}*/
}
如果我将它作为 Java 应用程序运行,则 JSON 文件会正确生成。如果我从中创建一个自下而上的 Web 服务并从中调用该方法,我会得到上面提到的异常。异常发生在初始化 JSONObject 的行。
谁能帮我解决这个问题?
谢谢和问候,维文。