Unmarshaling (JSON) in Apache CamelJava

Java-Forum
Guest
 Unmarshaling (JSON) in Apache Camel

Post by Guest »

Ich bin neu bei Apache Camel. Und ich möchte eine einfache Aufgabe mit Apache Camel erledigen. Ich habe JSON-Daten unter dieser URL http://localhost:8080/users/ verfügbar. Es gibt JSON-Daten von meinem Restdienst. Aber ich möchte diese JSON-Daten abrufen und sie mit Apache Camel in POJO entmarshaven und einige Daten in die TXT-Datei schreiben. Aber meine App startet und stoppt dann nicht.

Hier sind meine JSON-Daten verfügbar auf http://localhost:8080/users/

Code: Select all

[{"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

Code: Select all














MyRouteBuilder

Code: Select all

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();

}
}


Benutzer

Code: Select all

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;

}


Benutzer

Code: Select all

package Mapping;

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

public List usersList = new ArrayList();
}


Main

Code: Select all

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();
}
}

}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post