Демаршалинг (JSON) в Apache CamelJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Демаршалинг (JSON) в Apache Camel

Сообщение Anonymous »

Я новичок в Apache Camel. И я хочу выполнить простую задачу, используя Apache Camel. У меня есть данные JSON, доступные по этому URL http://localhost:8080/users/. Есть данные в формате JSON из моей службы отдыха. Но я хочу получить эти данные json и разупорядочить их в POJO, используя Apache Camel, и записать некоторые данные в текстовый файл. Но мое приложение запускается, а затем не останавливается.

Вот мои данные JSON, доступные на 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();

}
}


Пользователь

Код: Выделить всё

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;

}


Пользователи

Код: Выделить всё

package Mapping;

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

public List usersList = new ArrayList();
}


Основная

Код: Выделить всё

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

}

Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»