Skip to content

Fixes in JaxRS#36

Merged
HugoMario merged 3 commits intoswagger-api:masterfrom
jmini:patch-14
Mar 11, 2018
Merged

Fixes in JaxRS#36
HugoMario merged 3 commits intoswagger-api:masterfrom
jmini:patch-14

Conversation

@jmini
Copy link
Copy Markdown
Contributor

@jmini jmini commented Mar 10, 2018

As discussed in #29, additional fixes needs to be made in order to fix the jaxrs test suite in the swagger-codegen repository (see also swagger-api/swagger-codegen#7781)

@jmini
Copy link
Copy Markdown
Contributor Author

jmini commented Mar 10, 2018

ClassCastException: String cannot be cast to VendorExtendable

In scripts:

  • /bin/jaxrs-petstore-server.sh
  • /bin/jaxrs-jersey1-petstore-server.sh
  • /bin/jaxrs-jersey1-usetags-petstore-server.sh
  • /bin/jaxrs-usetags-petstore-server.sh

I get the error: ClassCastException: String cannot be cast to VendorExtendable

Stacktrace:

Exception in thread "Thread-1" java.lang.RuntimeException: Could not generate model 'AnimalFarm'
	at io.swagger.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:410)
	at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:729)
	at io.swagger.codegen.cmd.Generate.run(Generate.java:331)
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.github.jknack.handlebars.HandlebarsException: /v2/JavaJaxRS/pojo.mustache:118:94: java.lang.ClassCastException: java.lang.String cannot be cast to io.swagger.codegen.VendorExtendable
    /v2/JavaJaxRS/pojo.mustache:118:94
	at io.swagger.codegen.languages.helpers.ExtensionHelper.apply(ExtensionHelper.java:11)
	at com.github.jknack.handlebars.internal.Block.merge(Block.java:211)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
	at com.github.jknack.handlebars.Options.apply(Options.java:538)
	at com.github.jknack.handlebars.Options.fn(Options.java:445)
	at com.github.jknack.handlebars.helper.WithHelper.apply(WithHelper.java:58)
	at com.github.jknack.handlebars.internal.Block.merge(Block.java:211)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
	at com.github.jknack.handlebars.Options.apply(Options.java:538)
	at com.github.jknack.handlebars.Options.fn(Options.java:433)
	at com.github.jknack.handlebars.helper.UnlessHelper.apply(UnlessHelper.java:50)
	at com.github.jknack.handlebars.internal.Block.merge(Block.java:211)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.ForwardingTemplate.apply(ForwardingTemplate.java:86)
	at com.github.jknack.handlebars.internal.Partial.merge(Partial.java:175)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
	at com.github.jknack.handlebars.Options.apply(Options.java:538)
	at com.github.jknack.handlebars.Options.fn(Options.java:433)
	at io.swagger.codegen.languages.helpers.NoneExtensionHelper.apply(NoneExtensionHelper.java:27)
	at io.swagger.codegen.languages.helpers.NoneExtensionHelper.apply(NoneExtensionHelper.java:12)
	at com.github.jknack.handlebars.internal.Block.merge(Block.java:211)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
	at com.github.jknack.handlebars.Options.apply(Options.java:538)
	at com.github.jknack.handlebars.Options.fn(Options.java:445)
	at com.github.jknack.handlebars.helper.WithHelper.apply(WithHelper.java:58)
	at com.github.jknack.handlebars.internal.Block.merge(Block.java:211)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
	at com.github.jknack.handlebars.Options.apply(Options.java:538)
	at com.github.jknack.handlebars.helper.EachHelper.apply(EachHelper.java:72)
	at com.github.jknack.handlebars.internal.Block.merge(Block.java:211)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
	at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
	at com.github.jknack.handlebars.internal.ForwardingTemplate.apply(ForwardingTemplate.java:72)
	at io.swagger.codegen.DefaultGenerator.processTemplateToFile(DefaultGenerator.java:746)
	at io.swagger.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:397)
	... 3 more
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to io.swagger.codegen.VendorExtendable
	... 57 more

Solution: use {{#parentModel}} instead of {{#parent}}. => See commit 428a62a

@jmini
Copy link
Copy Markdown
Contributor Author

jmini commented Mar 10, 2018

Cannot find symbol Map

When I try to compile swagger-jaxrs-server I get this error:

[INFO] ------------------------------------------------------------------------
[INFO] Building swagger-jaxrs-server 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] ...
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ swagger-jaxrs-server ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 67 source files to /<path to swagger-codegen>/samples/server/petstore/jaxrs/jersey2/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /<path to swagger-codegen>/samples/server/petstore/jaxrs/jersey2/src/gen/java/io/swagger/api/FakeApiService.java:[41,61] cannot find symbol
  symbol:   class Map
  location: class io.swagger.api.FakeApiService
[ERROR] /<path to swagger-codegen>/samples/server/petstore/jaxrs/jersey2/src/main/java/io/swagger/api/impl/FakeApiServiceImpl.java:[70,52] cannot find symbol
  symbol:   class Map
  location: class io.swagger.api.impl.FakeApiServiceImpl
[INFO] 2 errors 

Solution add import java.util.Map; in the corresponding templates => see commit 4df801e

@jmini
Copy link
Copy Markdown
Contributor Author

jmini commented Mar 10, 2018

Invalid class names

Script /bin/jaxrs-usetags-petstore-server.sh produces invalid classes:

  • AnotherFake?ApiServiceImpl.java
  • AnotherFake?Api.java
  • AnotherFake?ApiService.java
  • AnotherFake?ApiServiceFactory.java
  • FakeClassnameTags123#%^ApiServiceImpl.java
  • FakeClassnameTags123#%^Api.java
  • FakeClassnameTags123#%^ApiService.java
  • FakeClassnameTags123#%^ApiServiceFactory.java

This was introduced when Issue #9 was fixed (see commits: d753d05 and d753d05).

Solution: see my commit 883b72e

@HugoMario
Copy link
Copy Markdown
Contributor

great! thanks @jmini

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants