Marat Gubaidullin created CAMEL-20487:
-----------------------------------------

             Summary: REST API generator issue with typeOut
                 Key: CAMEL-20487
                 URL: https://issues.apache.org/jira/browse/CAMEL-20487
             Project: Camel
          Issue Type: Bug
          Components: rest
    Affects Versions: 4.4.0
            Reporter: Marat Gubaidullin


If REST method typeOut defined then /api-doc throws exception.

How to reproduce:
1. rest.camel.yaml 

{code:java}
- restConfiguration:
    component: platform-http
    apiContextPath: /api-doc
    bindingMode: json
- rest:
    id: rest-b339
    get:
      - id: get-c5d3
        path: /account
        to: direct:get-account
        outType: karavan.simple.Account
        bindingMode: json
- route:
    id: route-4956
    nodePrefixId: route-7d3
    from:
      id: from-cad7
      uri: direct
      parameters:
        name: get-account
      steps:
        - setBody:
            id: setBody-0623
            expression:
              groovy:
                id: groovy-782e
                expression: |-
                  def acc = new karavan.simple.Account()
                  acc.setAccountNumber('12345')
                  acc.setAccountName('test')
                  return acc
        - log:
            id: log-bd34
            message: ${body}
{code}

2. Java Class

{code:java}
public class Account {

  // Private fields for encapsulation
  private String accountNumber;
  private String accountName;
  private double balance;

  public Account() {
  }

  public String getAccountNumber() {
    return accountNumber;
  }

  public void setAccountNumber(String accountNumber) {
    this.accountNumber = accountNumber;
  }

  public String getAccountName() {
    return accountName;
  }

  public void setAccountName(String accountName) {
    this.accountName = accountName;
  }

  public double getBalance() {
    return balance;
  }

  public void setBalance(double balance) {
    this.balance = balance;
  }
}

{code}

3. Run 

{code:java}
jbang "-Dcamel.jbang.version=4.4.0" camel@apache/camel run * 
--gav=karavan:simple:1
{code}

4. Call /api-doc 

{code:java}
curl --location 'localhost:8080/api-doc'
{code}

5. Get exception:

{code:java}
2024-02-27 12:46:29.336  WARN 52151 --- [worker-thread-0] 
agger.v3.core.jackson.ModelResolver : jackson 
BeanDescription.findJsonValueAccessor not found, this could lead to inaccurate 
result, please update jackson to 2.9+
2024-02-27 12:46:29.337  WARN 52151 --- [ntloop-thread-0] 
ttp.vertx.VertxPlatformHttpConsumer : Failed handling platform-http endpoint 
/api-doc. Caused by: [java.lang.NoClassDefFoundError - 
javax/xml/bind/annotation/XmlElement]
java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlElement
        at 
io.swagger.v3.core.jackson.SwaggerAnnotationIntrospector.hasRequiredMarker(SwaggerAnnotationIntrospector.java:29)
 ~[swagger-core-2.2.19.jar:2.2.19]
{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to