Unmarshaling (JSON) in apache camel
05:56 27 May 2016

I am new in apache camel. And I wanna do some simple task using apache camel. I have json data available on this url http://localhost:8080/users/. There are json data from my rest service. But I wanna get this json data and unmarshal it to POJO using apache camel and write some data to txt file. But my app starts and then doesnt't stop.

Here is my JSON data available on http://localhost:8080/users/

[{"id":1,"login":"admin","password":"admin","passwordAgain":null,"email":"admin@admin.com","firstName":"Admin","lastName":"Adminovich","birthday":"2010-10-10","role":{"id":1,"name":"admin"}},
{"id":5,"login":"Snow123","password":"1111","passwordAgain":null,"email":"john@snow.com","firstName":"John","lastName":"Snow","birthday":"2010-10-10","role":{"id":2,"name":"user"}}]

spring.xml


    

    

    

    

        

    

MyRouteBuilder

import Mapping.User;
import Mapping.Users;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.main.Main;
import org.apache.camel.component.restlet.RestletConstants;
import org.apache.camel.model.dataformat.JsonLibrary;
import org.restlet.Response;
import org.restlet.data.MediaType;
import org.restlet.data.Status;



public class MyRouteBuilder extends RouteBuilder {

    private String routePort = null;
    private String routeAnswer = null;

    public void restart() {
        String start = "Route Property Placeholder Example started on port" + " 8080" + "!";
        System.out.println(start);
    }

    public void configure() throws Exception {
        from("timer:foo?repeatCount=1").to("http://10.10.34.145:8080/users/").unmarshal().json(JsonLibrary.Jackson, Users.class ).log("STARTED!")
                .process(new Processor() {
                    public void process (Exchange exchange) throws Exception {
                        Users usersList = exchange.getIn().getBody(Users.class);
                        exchange.getIn().setBody(usersList.usersList);
                        System.out.println(usersList.usersList.size());
                    }
                }).to("file:///home/name/username/Desktop/camel.txt").stop();

    }
}

User

package Mapping;

import com.google.gson.FieldNamingStrategy;

import java.lang.reflect.Field;

public class User {

    public User() {

    }

    private int id;
    private String login;
    private String password;
    private String passwordAgain;
    private String email;
    private String firstName;
    private String lastName;
    private String birthday;

    public void setId(int id) {
        this.id = id;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setPasswordAgain(String passwordAgain) {
        this.passwordAgain = passwordAgain;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public int getId() {
        return id;
    }

    public String getLogin() {
        return login;
    }

    public String getPassword() {
        return password;
    }

    public String getPasswordAgain() {
        return passwordAgain;
    }

    public String getEmail() {
        return email;
    }

    public String getFirsteName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public String getBirthday() {
        return birthday;
    }

    public String getRole() {
        return role;
    }

    private String role;

}

Users

package Mapping;

import java.util.ArrayList;
import java.util.List;
public class Users {

    public List usersList = new ArrayList();
}
Main

import org.apache.camel.main.Main;

public class MainClass {

    public static void main(String[] args) {
        Main main = new Main();
        main.enableHangupSupport();

        MyRouteBuilder rb = new MyRouteBuilder();
        main.addRouteBuilder(rb);
        try {
            main.run(args);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

java json apache-camel marshalling