Java REST服务。信息未保存到文件,我的代码也没有读取文件

时间:2015-12-15 09:47:04

标签: java json eclipse rest

我正在使用JSON对象为数据创建我的第一个Rest服务 在Gson库2.5的帮助下,在用户和服务器之间进行传输。 我没有使用像泽西岛这样的任何框架。 (那是我的 项目要求)。我使用的java版本是1.6(我的要求的一部分) jboss服务器和Eclipse作为IDE。

目前我有一个简单的HTML表单中的两个小函数。首先是 suposed用于请求来自JSON文件的数据,第二个用于 将新的json信息添加到json文档中。

问题是:当我尝试访问JSON文件时,返回一个数组 最后提交的人。当我保存新的Person信息时,该信息是 没有保存在人员JsonFile中,而是保存在其他地方[没有想法的地方]。 我的json文件位于Projects主文件夹中。

任何帮助都是非常苛刻的。

GetData类:

@Path("/data")
public class GetDataClass {
@GET
@Produces("text/plain")

    public ArrayList<PersonConstructor> displayJsonFile() throws IOException{

    ArrayList<PersonConstructor> newLib = new ArrayList<PersonConstructor>();
    File jsonFile = new File("personsJsonFile.json");
    Scanner fileInput = new Scanner(jsonFile);
    Gson gson = new Gson();
    while(fileInput.hasNextLine()){
        String jsonLine = fileInput.nextLine();
        PersonConstructor singlePerson = gson.fromJson(jsonLine, PersonConstructor.class);
        newLib.add(singlePerson);
    }
    fileInput.close();
    return newLib;
}
} 

AddData Class:

@Path("/add")
public class AddPersonsClass {
@POST
public String addPersons(
        @FormParam("idInput") int idInput,
        @FormParam("surnameInput") String surnameInput,
        @FormParam("nameInput") String nameInput            
        ) throws IOException
{
        Gson gson = new Gson();
        PersonConstructor newPerson = new PersonConstructor();
        newPerson.setPersonId(idInput);
        newPerson.setPersonNume(nameInput);
        newPerson.setPersonPrenume(surnameInput);

        File jsonFile = new File("personsJsonFile.json");
        FileWriter jsonWriter = new FileWriter(jsonFile);
        System.out.println(newPerson);
        String jsonLine = gson.toJson(newPerson);
        System.out.println(newPerson);
        jsonWriter.write(jsonLine+"\n");
        jsonWriter.close();
        return "Element: " + newPerson + "has been added";      
}
}

PersonConstructor类:

public class PersonConstructor {

    private int personId;
    private String personNume;
    private String personPrenume;

    public PersonConstructor(int personId, String personNume,String personPrenume){
        this.personId = personId;
        this.personPrenume = personPrenume;
        this.personNume = personNume;
    }

    public PersonConstructor() {

    }
    public int getPersonId(){
        return personId;
    }
    public void setPersonId(int personId){
        this.personId = personId;
    }
    public String getPersonNume(){
        return personNume;
    }
    public void setPersonNume(String personNume){
        this.personNume = personNume;
    }
    public String getPersonPrenume(){
        return personPrenume;
    }
    public void setPersonPrenume(String personPrenume){
        this.personPrenume = personPrenume;
    }   
    public String toString(){
        return String.format("\n%s %s %s\n", this.personId, this.personNume, this.personPrenume);
    }

}

Json文件包含:

{"personId":5,"personNume":"Ursu","personPrenume":"Niculae"},
{"personId":6,"personNume":"Ivan","personPrenume":"Claudiu"},
{"personId":7,"personNume":"Hap","personPrenume":"Dorel"}

1 个答案:

答案 0 :(得分:0)

您的问题似乎是您没有指定保存文件的路径。

创建文件时添加路径。

final String jsonDirectory  = "path to file";

File file = new File(jsonDirectory + "\\results.txt");