Я изучаю технологии промежуточного программного обеспечения, а Apache Camel появился первым. Я пытаюсь внедрить конверсию XML в JSON, но я не могу реализовать зависимости JAXB. Я попробовал несколько и все еще получил ошибку, что «формат данных» JAXB не может быть создан ». Я вставляю весь код здесь для справки, а также Thrace Stack. Любая идея, в чем может быть проблема. Я попытался изменить версии зависимости, но все еще получил ошибку.package com.SpringWithCamel.Camel.boot;
import org.apache.camel.main.Main;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) throws Exception {
Main main = new Main();
main.configure().addRoutesBuilder(new XmlToJsonRoute());
main.run(args);
}
}
< /code>
xmltojsonroute.java
package com.SpringWithCamel.Camel.boot;
import org.apache.camel.builder.RouteBuilder;
public class XmlToJsonRoute extends RouteBuilder {
@Override
public void configure() {
from("file:C:/Users/akstu/Downloads/Camel.boot/Camel.boot/input?noop=true")
.log("Processing file: ${file:name}")
.unmarshal().jaxb("com.SpringWithCamel.Camel.boot.model")
.marshal().json()
.to("file:C:/Users/akstu/Downloads/Camel.boot/Camel.boot/output?fileName=output.json")
.log("Saved JSON file to output directory");
}
}
< /code>
user.java
package com.SpringWithCamel.Camel.boot.model;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "user")
public class User {
public int id;
public String name;
public String email;
public User() {}
@XmlElement
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
< /code>
user.xml
101
John Doe
john@example.com
< /code>
Stack: < /p>
at com.SpringWithCamel.Camel.boot.Application.main(Application.java:15)
Caused by: java.lang.IllegalArgumentException: Data format 'jaxb' could not be created. Ensure that the data format is valid and the associated Camel component is present on the classpath
at org.apache.camel.reifier.dataformat.DataFormatReifier.createDataFormat(DataFormatReifier.java:289)
< /code>
Процесс завершен с кодом выхода 1 < /p>
pom.xml
com.SpringWithCamel
Camel.boot
0.0.1-SNAPSHOT
Camel.boot
Demo project for Spring Boot
21
4.10.2
org.springframework.boot
spring-boot-starter-web
org.apache.camel.springboot
camel-spring-boot-starter
${camel.version}
jakarta.xml.bind
jakarta.xml.bind-api
3.0.1
org.glassfish.jaxb
jaxb-runtime
3.0.2
org.apache.camel
camel-core
${camel.version}
org.apache.camel
camel-file
${camel.version}
org.apache.camel.springboot
camel-jaxb-starter
${camel.version}
org.apache.camel
camel-jackson
${camel.version}
org.springframework.boot
spring-boot-starter-test
test
Подробнее здесь: https://stackoverflow.com/questions/795 ... pring-boot