org.apache.camel.runtimecamelexception:com.sun.xml.bind.v2.runtime.illegalannotationsexception:1 iLlegalannotationExceptions

发布于 2025-02-09 05:15:34 字数 17456 浏览 1 评论 0原文

我正在尝试使用JSON输入和骆驼路由来构建Quarkus服务。我正在使用Bean捕获JSON数据并将其转换为Java对象进行进一步处理。为了测试,我正在尝试将我的Quarkus服务通过HTTP客户端收到的输入返回到调用程序。一旦我尝试处理HTTP请求,我就会遇到错误。

以下是JSON输入我的Quarkus服务回收:

{
  "requestHeader": {
    "inputTransactionId": "ABC",
    "partnerId": "1",
    "partnerName": "ABC",
    "integrationID": "123",
    "integrationName": "TESTING",
    "applicationID": "TEST",
    "applicationName": "SOMETHING",
    "metadata":[{
        "A":"1",
        "B":"2"
    }]
     },
  "city": "",
  "state": "AC",
  "zipcode": "64035"
}

以下是zipcoderequest bean定义

import io.swagger.v3.oas.annotations.media.Schema;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.annotation.JsonCreator;

public class USZipcodeRequest   {
  
  @Schema(description = "")
  private RequestHeader requestHeader = null;
  
  @Schema(description = "The city name")
  private String city = "";
  
  @Schema(description = "State name or two-letter abbreviation")
  private String state = "";
  
  @Schema(description = "The ZIP Code. See the paragraphs below this table for a few relevant details.")
  private String zipcode = "";

  @JsonProperty("requestHeader")
  public RequestHeader getRequestHeader() {
    return requestHeader;
  }

  public void setRequestHeader(RequestHeader requestHeader) {
    this.requestHeader = requestHeader;
  }

  public USZipcodeRequest requestHeader(RequestHeader requestHeader) {
    this.requestHeader = requestHeader;
    return this;
  }

 @JsonProperty("city")
  public String getCity() {
    return city;
  }

  public void setCity(String city) {
    this.city = city;
  }

  public USZipcodeRequest city(String city) {
    this.city = city;
    return this;
  }

 @JsonProperty("state")
  public String getState() {
    return state;
  }

  public void setState(String state) {
    this.state = state;
  }

  public USZipcodeRequest state(String state) {
    this.state = state;
    return this;
  }

   @JsonProperty("zipcode")
  public String getZipcode() {
    return zipcode;
  }

  public void setZipcode(String zipcode) {
    this.zipcode = zipcode;
  }

  public USZipcodeRequest zipcode(String zipcode) {
    this.zipcode = zipcode;
    return this;
  }
}

以下是请求者bean bean的定义(输入的请求标头),该定义正在引起错误

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;

import javax.enterprise.context.ApplicationScoped;

import com.fasterxml.jackson.annotation.JsonProperty;

import io.quarkus.runtime.annotations.IgnoreProperty;
import io.swagger.v3.oas.annotations.media.Schema;

@ApplicationScoped

@Schema(description="base header fields for all requests")
public class RequestHeader   {
  
  @Schema(required = true, description = "An identifier passed into the API call to identify the transaction within the calling application; this field will be returned with the output.")

  private String inputTransactionId = null;
  
  @Schema(required = true, description = "Trading parter Id as in the intgration registry.")

  private String partnerId = null;
  
  @Schema(required = true, description = "Trading parter name as in the intgration registry.")
 
  private String partnerName = null;
  
  @Schema(required = true, description = "Integration Id as in the intgration registry.")

  private String integrationID = null;
  
  @Schema(required = true, description = "Integration name as in the intgration registry.")

  private String integrationName = null;
  
  @Schema(required = true, description = "Application Id as in the intgration registry.")
 
  private String applicationID = null;
  
  @Schema(required = true, description = "Application Id as in the intgration registry.")

  private String applicationName = null;
  
  @Schema(description = "Contains addtion flex metadata.")
 
  //private List<Metadata> metadata = null;
  private List<Map<String, String>> metadata = new ArrayList<Map<String, String>>();
 
  @JsonProperty("inputTransactionId")
  public String getInputTransactionId() {
    return inputTransactionId;
  }

  public void setInputTransactionId(String inputTransactionId) {
    this.inputTransactionId = inputTransactionId;
  }

  public RequestHeader inputTransactionId(String inputTransactionId) {
    this.inputTransactionId = inputTransactionId;
    return this;
  }

 
  @JsonProperty("partnerId")
  public String getPartnerId() {
    return partnerId;
  }

  public void setPartnerId(String partnerId) {
    this.partnerId = partnerId;
  }

  public RequestHeader partnerId(String partnerId) {
    this.partnerId = partnerId;
    return this;
  }

   @JsonProperty("partnerName")
  public String getPartnerName() {
    return partnerName;
  }

  public void setPartnerName(String partnerName) {
    this.partnerName = partnerName;
  }

  public RequestHeader partnerName(String partnerName) {
    this.partnerName = partnerName;
    return this;
  }

  @JsonProperty("integrationID")
  public String getIntegrationID() {
    return integrationID;
  }

  public void setIntegrationID(String integrationID) {
    this.integrationID = integrationID;
  }

  public RequestHeader integrationID(String integrationID) {
    this.integrationID = integrationID;
    return this;
  }

  @JsonProperty("integrationName")
  public String getIntegrationName() {
    return integrationName;
  }

  public void setIntegrationName(String integrationName) {
    this.integrationName = integrationName;
  }

  public RequestHeader integrationName(String integrationName) {
    this.integrationName = integrationName;
    return this;
  }

  @JsonProperty("applicationID")
  public String getApplicationID() {
    return applicationID;
  }

  public void setApplicationID(String applicationID) {
    this.applicationID = applicationID;
  }

  public RequestHeader applicationID(String applicationID) {
    this.applicationID = applicationID;
    return this;
  }

  @JsonProperty("applicationName")
  public String getApplicationName() {
    return applicationName;
  }

  public void setApplicationName(String applicationName) {
    this.applicationName = applicationName;
  }

  public RequestHeader applicationName(String applicationName) {
    this.applicationName = applicationName;
    return this;
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class RequestHeader {\n");
    
    sb.append("    inputTransactionId: ").append(toIndentedString(inputTransactionId)).append("\n");
    sb.append("    partnerId: ").append(toIndentedString(partnerId)).append("\n");
    sb.append("    partnerName: ").append(toIndentedString(partnerName)).append("\n");
    sb.append("    integrationID: ").append(toIndentedString(integrationID)).append("\n");
    sb.append("    integrationName: ").append(toIndentedString(integrationName)).append("\n");
    sb.append("    applicationID: ").append(toIndentedString(applicationID)).append("\n");
    sb.append("    applicationName: ").append(toIndentedString(applicationName)).append("\n");
 //   sb.append("    metadata: ").append(toIndentedString(metadata)).append("\n");
    sb.append("}");
    return sb.toString();
  }

 public List<Map<String, String>> getMetadata() {
  return metadata;
}

public void setMetadata(List<Map<String, String>> metadata) {
  this.metadata = metadata;
}
}

每当我尝试编译我的代码时,我都会得到以下错误:

Failed to start application (with profile dev): com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
java.util.Map is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at java.util.Map
                at public java.util.List com.company.beans.asv.RequestHeader.getMetadata()
                at com.company.beans.asv.RequestHeader
                at public com.company.beans.asv.RequestHeader com.company.beans.asv.USZipcodeRequest.getRequestHeader()
                at com.company.beans.asv.USZipcodeRequest

        at com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:76)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:441)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:273)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:109)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1126)
        at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:135)
        at com.sun.xml.bind.v2.JAXBContextFactory.createContext(JAXBContextFactory.java:35)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:393)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:691)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:632)
        at org.apache.camel.converter.jaxb.JaxbDataFormat.createContext(JaxbDataFormat.java:548)
        at org.apache.camel.converter.jaxb.JaxbDataFormat.doStart(JaxbDataFormat.java:516)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
        at org.apache.camel.impl.engine.AbstractCamelContext.internalAddService(AbstractCamelContext.java:1568)
        at org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1489)
        at org.apache.camel.support.processor.MarshalProcessor.doStart(MarshalProcessor.java:122)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
        at org.apache.camel.impl.engine.DeferServiceStartupListener.doStart(DeferServiceStartupListener.java:63)
        at org.apache.camel.impl.engine.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:54)
        at org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:196)
        at org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:147)
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:3344)
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:3023)
        at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2978)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2639)
        at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:255)
        at org.apache.camel.quarkus.main.CamelMain.doStart(CamelMain.java:94)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:140)
        at org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49)
        at org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy_0(Unknown Source)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy(Unknown Source)
        at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
        at io.quarkus.runtime.Application.start(Application.java:101)
        at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:103)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:67)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:41)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:120)
        at io.quarkus.runner.GeneratedMain.main(Unknown Source)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:103)
        at java.base/java.lang.Thread.run(Thread.java:829)


2022-06-19 13:04:49,241 INFO  [io.qua.dep.dev.IsolatedDevModeMain] (main) Attempting to start live reload endpoint to recover from previous Quarkus startup failure
2022-06-19 13:09:40,358 INFO  [io.qua.dep.dev.RuntimeUpdatesProcessor] (Timer-0) Restarting quarkus due to changes in AddressValidationRoute.class.
2022-06-19 13:09:40,358 INFO  [io.qua.dep.dev.RuntimeUpdatesProcessor] (Timer-0) Restarting quarkus due to changes in AddressValidationRoute.class.
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2022-06-19 13:09:41,282 INFO  [org.apa.cam.qua.cor.CamelBootstrapRecorder] (Quarkus Main Thread) Bootstrap runtime: org.apache.camel.quarkus.main.CamelMainRuntime

2022-06-19 13:09:41,285 INFO  [org.apa.cam.mai.MainSupport] (Quarkus Main Thread) Apache Camel (Main) 3.16.0 is starting
2022-06-19 13:09:41,360 ERROR [org.apa.cam.qua.mai.CamelMainRuntime] (Quarkus Main Thread) Failed to start application: org.apache.camel.FailedToCreateRouteException: Failed to create route us-zip-code-route at: >>> From[direct:us-zip-code] <<< in route: Route(us-zip-code-route)[From[direct:us-zip-code] -> []] because of Route us-zip-code-route has no output processors. You need to add outputs to the route such as to("log:foo").
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:222)
        at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:74)
        at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:887)
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:775)
        at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2937)
        at org.apache.camel.quarkus.core.FastCamelContext.doInit(FastCamelContext.java:172)
        at org.apache.camel.support.service.BaseService.init(BaseService.java:83)
        at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2620)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:111)
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2639)
        at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:255)
        at org.apache.camel.quarkus.main.CamelMain.doStart(CamelMain.java:94)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:140)
        at org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49)
        at org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy_0(Unknown Source)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy(Unknown Source)
        at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
        at io.quarkus.runtime.Application.start(Application.java:101)
        at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:103)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:67)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:41)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:120)
        at io.quarkus.runner.GeneratedMain.main(Unknown Source)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:103)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: Route us-zip-code-route has no output processors. You need to add outputs to the route such as to("log:foo").
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:220)

I am trying to build a quarkus service using JSON input and Camel routes. I am using beans to capture the JSON data and convert it into Java objects for further processing. For the sake of testing, i am trying to return the input which my quarkus service receives via HTTP client back to the calling program. As soon i try to process a HTTP request, i am getting an error.

Below is the JSON input my quarkus service recieves:

{
  "requestHeader": {
    "inputTransactionId": "ABC",
    "partnerId": "1",
    "partnerName": "ABC",
    "integrationID": "123",
    "integrationName": "TESTING",
    "applicationID": "TEST",
    "applicationName": "SOMETHING",
    "metadata":[{
        "A":"1",
        "B":"2"
    }]
     },
  "city": "",
  "state": "AC",
  "zipcode": "64035"
}

Below is the ZipCodeRequest Bean definition

import io.swagger.v3.oas.annotations.media.Schema;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.annotation.JsonCreator;

public class USZipcodeRequest   {
  
  @Schema(description = "")
  private RequestHeader requestHeader = null;
  
  @Schema(description = "The city name")
  private String city = "";
  
  @Schema(description = "State name or two-letter abbreviation")
  private String state = "";
  
  @Schema(description = "The ZIP Code. See the paragraphs below this table for a few relevant details.")
  private String zipcode = "";

  @JsonProperty("requestHeader")
  public RequestHeader getRequestHeader() {
    return requestHeader;
  }

  public void setRequestHeader(RequestHeader requestHeader) {
    this.requestHeader = requestHeader;
  }

  public USZipcodeRequest requestHeader(RequestHeader requestHeader) {
    this.requestHeader = requestHeader;
    return this;
  }

 @JsonProperty("city")
  public String getCity() {
    return city;
  }

  public void setCity(String city) {
    this.city = city;
  }

  public USZipcodeRequest city(String city) {
    this.city = city;
    return this;
  }

 @JsonProperty("state")
  public String getState() {
    return state;
  }

  public void setState(String state) {
    this.state = state;
  }

  public USZipcodeRequest state(String state) {
    this.state = state;
    return this;
  }

   @JsonProperty("zipcode")
  public String getZipcode() {
    return zipcode;
  }

  public void setZipcode(String zipcode) {
    this.zipcode = zipcode;
  }

  public USZipcodeRequest zipcode(String zipcode) {
    this.zipcode = zipcode;
    return this;
  }
}

Below is the RequestHeader bean definition (Request Header from the input) which is causing the error

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;

import javax.enterprise.context.ApplicationScoped;

import com.fasterxml.jackson.annotation.JsonProperty;

import io.quarkus.runtime.annotations.IgnoreProperty;
import io.swagger.v3.oas.annotations.media.Schema;

@ApplicationScoped

@Schema(description="base header fields for all requests")
public class RequestHeader   {
  
  @Schema(required = true, description = "An identifier passed into the API call to identify the transaction within the calling application; this field will be returned with the output.")

  private String inputTransactionId = null;
  
  @Schema(required = true, description = "Trading parter Id as in the intgration registry.")

  private String partnerId = null;
  
  @Schema(required = true, description = "Trading parter name as in the intgration registry.")
 
  private String partnerName = null;
  
  @Schema(required = true, description = "Integration Id as in the intgration registry.")

  private String integrationID = null;
  
  @Schema(required = true, description = "Integration name as in the intgration registry.")

  private String integrationName = null;
  
  @Schema(required = true, description = "Application Id as in the intgration registry.")
 
  private String applicationID = null;
  
  @Schema(required = true, description = "Application Id as in the intgration registry.")

  private String applicationName = null;
  
  @Schema(description = "Contains addtion flex metadata.")
 
  //private List<Metadata> metadata = null;
  private List<Map<String, String>> metadata = new ArrayList<Map<String, String>>();
 
  @JsonProperty("inputTransactionId")
  public String getInputTransactionId() {
    return inputTransactionId;
  }

  public void setInputTransactionId(String inputTransactionId) {
    this.inputTransactionId = inputTransactionId;
  }

  public RequestHeader inputTransactionId(String inputTransactionId) {
    this.inputTransactionId = inputTransactionId;
    return this;
  }

 
  @JsonProperty("partnerId")
  public String getPartnerId() {
    return partnerId;
  }

  public void setPartnerId(String partnerId) {
    this.partnerId = partnerId;
  }

  public RequestHeader partnerId(String partnerId) {
    this.partnerId = partnerId;
    return this;
  }

   @JsonProperty("partnerName")
  public String getPartnerName() {
    return partnerName;
  }

  public void setPartnerName(String partnerName) {
    this.partnerName = partnerName;
  }

  public RequestHeader partnerName(String partnerName) {
    this.partnerName = partnerName;
    return this;
  }

  @JsonProperty("integrationID")
  public String getIntegrationID() {
    return integrationID;
  }

  public void setIntegrationID(String integrationID) {
    this.integrationID = integrationID;
  }

  public RequestHeader integrationID(String integrationID) {
    this.integrationID = integrationID;
    return this;
  }

  @JsonProperty("integrationName")
  public String getIntegrationName() {
    return integrationName;
  }

  public void setIntegrationName(String integrationName) {
    this.integrationName = integrationName;
  }

  public RequestHeader integrationName(String integrationName) {
    this.integrationName = integrationName;
    return this;
  }

  @JsonProperty("applicationID")
  public String getApplicationID() {
    return applicationID;
  }

  public void setApplicationID(String applicationID) {
    this.applicationID = applicationID;
  }

  public RequestHeader applicationID(String applicationID) {
    this.applicationID = applicationID;
    return this;
  }

  @JsonProperty("applicationName")
  public String getApplicationName() {
    return applicationName;
  }

  public void setApplicationName(String applicationName) {
    this.applicationName = applicationName;
  }

  public RequestHeader applicationName(String applicationName) {
    this.applicationName = applicationName;
    return this;
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class RequestHeader {\n");
    
    sb.append("    inputTransactionId: ").append(toIndentedString(inputTransactionId)).append("\n");
    sb.append("    partnerId: ").append(toIndentedString(partnerId)).append("\n");
    sb.append("    partnerName: ").append(toIndentedString(partnerName)).append("\n");
    sb.append("    integrationID: ").append(toIndentedString(integrationID)).append("\n");
    sb.append("    integrationName: ").append(toIndentedString(integrationName)).append("\n");
    sb.append("    applicationID: ").append(toIndentedString(applicationID)).append("\n");
    sb.append("    applicationName: ").append(toIndentedString(applicationName)).append("\n");
 //   sb.append("    metadata: ").append(toIndentedString(metadata)).append("\n");
    sb.append("}");
    return sb.toString();
  }

 public List<Map<String, String>> getMetadata() {
  return metadata;
}

public void setMetadata(List<Map<String, String>> metadata) {
  this.metadata = metadata;
}
}

Whenever i try to compile my code, i get the below error :

Failed to start application (with profile dev): com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
java.util.Map is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at java.util.Map
                at public java.util.List com.company.beans.asv.RequestHeader.getMetadata()
                at com.company.beans.asv.RequestHeader
                at public com.company.beans.asv.RequestHeader com.company.beans.asv.USZipcodeRequest.getRequestHeader()
                at com.company.beans.asv.USZipcodeRequest

        at com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:76)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:441)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:273)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:109)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1126)
        at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:135)
        at com.sun.xml.bind.v2.JAXBContextFactory.createContext(JAXBContextFactory.java:35)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:393)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:691)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:632)
        at org.apache.camel.converter.jaxb.JaxbDataFormat.createContext(JaxbDataFormat.java:548)
        at org.apache.camel.converter.jaxb.JaxbDataFormat.doStart(JaxbDataFormat.java:516)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
        at org.apache.camel.impl.engine.AbstractCamelContext.internalAddService(AbstractCamelContext.java:1568)
        at org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1489)
        at org.apache.camel.support.processor.MarshalProcessor.doStart(MarshalProcessor.java:122)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
        at org.apache.camel.impl.engine.DeferServiceStartupListener.doStart(DeferServiceStartupListener.java:63)
        at org.apache.camel.impl.engine.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:54)
        at org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:196)
        at org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:147)
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:3344)
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:3023)
        at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2978)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2639)
        at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:255)
        at org.apache.camel.quarkus.main.CamelMain.doStart(CamelMain.java:94)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:140)
        at org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49)
        at org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy_0(Unknown Source)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy(Unknown Source)
        at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
        at io.quarkus.runtime.Application.start(Application.java:101)
        at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:103)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:67)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:41)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:120)
        at io.quarkus.runner.GeneratedMain.main(Unknown Source)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:103)
        at java.base/java.lang.Thread.run(Thread.java:829)


2022-06-19 13:04:49,241 INFO  [io.qua.dep.dev.IsolatedDevModeMain] (main) Attempting to start live reload endpoint to recover from previous Quarkus startup failure
2022-06-19 13:09:40,358 INFO  [io.qua.dep.dev.RuntimeUpdatesProcessor] (Timer-0) Restarting quarkus due to changes in AddressValidationRoute.class.
2022-06-19 13:09:40,358 INFO  [io.qua.dep.dev.RuntimeUpdatesProcessor] (Timer-0) Restarting quarkus due to changes in AddressValidationRoute.class.
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2022-06-19 13:09:41,282 INFO  [org.apa.cam.qua.cor.CamelBootstrapRecorder] (Quarkus Main Thread) Bootstrap runtime: org.apache.camel.quarkus.main.CamelMainRuntime

2022-06-19 13:09:41,285 INFO  [org.apa.cam.mai.MainSupport] (Quarkus Main Thread) Apache Camel (Main) 3.16.0 is starting
2022-06-19 13:09:41,360 ERROR [org.apa.cam.qua.mai.CamelMainRuntime] (Quarkus Main Thread) Failed to start application: org.apache.camel.FailedToCreateRouteException: Failed to create route us-zip-code-route at: >>> From[direct:us-zip-code] <<< in route: Route(us-zip-code-route)[From[direct:us-zip-code] -> []] because of Route us-zip-code-route has no output processors. You need to add outputs to the route such as to("log:foo").
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:222)
        at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:74)
        at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:887)
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:775)
        at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2937)
        at org.apache.camel.quarkus.core.FastCamelContext.doInit(FastCamelContext.java:172)
        at org.apache.camel.support.service.BaseService.init(BaseService.java:83)
        at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2620)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:111)
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2639)
        at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:255)
        at org.apache.camel.quarkus.main.CamelMain.doStart(CamelMain.java:94)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:140)
        at org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49)
        at org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy_0(Unknown Source)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy(Unknown Source)
        at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
        at io.quarkus.runtime.Application.start(Application.java:101)
        at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:103)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:67)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:41)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:120)
        at io.quarkus.runner.GeneratedMain.main(Unknown Source)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:103)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: Route us-zip-code-route has no output processors. You need to add outputs to the route such as to("log:foo").
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:220)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文