Error while calling camunda REST API from Angular 9

Hi,

This is Amit.

I’m trying to call camunda REST API from my Angular v9 application. But getting below error (in yellow).

The versions I’ m using are as follows.

Spring-Boot: (v2.2.5.RELEASE)
Camunda BPM: (v7.13.0)
Camunda BPM Spring Boot Starter: (v7.13.0)

When I try to call REST API from Postman(Rest client) it works fine.

Have below 2 entries in pom.xml

org.camunda.bpm.springboot
camunda-bpm-spring-boot-starter-webapp
${camunda.spring-boot.version}


org.camunda.bpm.springboot
camunda-bpm-spring-boot-starter-rest
${camunda.spring-boot.version}

2020-07-17 17:57:19.323 ERROR 30536 — [nio-8080-exec-1] .w.i.g.WadlGeneratorJAXBGrammarGenerator : Failed to generate the schema for the JAX-B elements

com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
at com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:106) ~[jaxb-impl-2.2.3.jar:2.2.3]
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:489) ~[jaxb-impl-2.2.3.jar:2.2.3]
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:319) ~[jaxb-impl-2.2.3.jar:2.2.3]
at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1170) ~[jaxb-impl-2.2.3.jar:2.2.3]
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:145) ~[jaxb-impl-2.2.3.jar:2.2.3]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_202]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_202]
at javax.xml.bind.ContextFinder.newInstance(Unknown Source) ~[na:1.8.0_202]
at javax.xml.bind.ContextFinder.newInstance(Unknown Source) ~[na:1.8.0_202]
at javax.xml.bind.ContextFinder.find(Unknown Source) ~[na:1.8.0_202]
at javax.xml.bind.JAXBContext.newInstance(Unknown Source) ~[na:1.8.0_202]
at javax.xml.bind.JAXBContext.newInstance(Unknown Source) ~[na:1.8.0_202]
at org.glassfish.jersey.server.wadl.internal.generators.WadlGeneratorJAXBGrammarGenerator.buildModelAndSchemas(WadlGeneratorJAXBGrammarGenerator.java:341) [jersey-server-2.29.1.jar:na]
at org.glassfish.jersey.server.wadl.internal.generators.WadlGeneratorJAXBGrammarGenerator.createExternalGrammar(WadlGeneratorJAXBGrammarGenerator.java:290) [jersey-server-2.29.1.jar:na]
at org.glassfish.jersey.server.wadl.internal.WadlBuilder.generate(WadlBuilder.java:99) [jersey-server-2.29.1.jar:na]
at org.glassfish.jersey.server.wadl.internal.WadlApplicationContextImpl.getApplication(WadlApplicationContextImpl.java:132) [jersey-server-2.29.1.jar:na]
at org.glassfish.jersey.server.wadl.internal.WadlApplicationContextImpl.getApplication(WadlApplicationContextImpl.java:150) [jersey-server-2.29.1.jar:na]
at org.glassfish.jersey.server.wadl.processor.WadlModelProcessor$OptionsHandler.apply(WadlModelProcessor.java:119) [jersey-server-2.29.1.jar:na]
at org.glassfish.jersey.server.wadl.processor.WadlModelProcessor$OptionsHandler.apply(WadlModelProcessor.java:102) [jersey-server-2.29.1.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_202]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_202]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52) [jersey-server-2.29.1.jar:na]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124) ~[jersey-server-2.29.1.jar:na]

(Reference from Camunda CORS Filter in Spring Boot Application)

The blow code resolved my issue.

 @Bean
    public FilterRegistrationBean processCorsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");
        config.addAllowedMethod("*");
        source.registerCorsConfiguration("/**", config);

        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        bean.setOrder(0);
        return bean;
    }
1 Like