I'm playing with Quarkus native and org.kohsuke:github-api:1.111 and I see Failed to deserialize exception in native mode when doing simple new GitHubBuilder().withOAuthToken(ghToken).build();. This works in JVM mode.
The main problem is probably the fact that org.kohsuke:github-api is not ready for native mode.
I still want to ask if there are any options to workaround this, maybe some jackson tricks for https://github.com/github-api/github-api/blob/master/src/main/java/org/kohsuke/github/GHMyself.java (stacktrace contains Cannot construct instance of org.kohsuke.github.GHMyself (no Creators, like default construct, exist)).
Exception details:
2020-05-05 10:47:06,891 ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /hello failed, error id: a71018e5-de46-43a0-a194-80bd0b477f3d-1: org.jboss.resteasy.spi.UnhandledException: org.kohsuke.github.HttpException: Server returned HTTP response code: 200, message: '200 OK' for URL: https://api.github.com/user
...
Caused by: java.io.IOException: Failed to deserialize {"login":"rsvoboda","id":925259,"node_id":"MDQ6VXNlcjkyNTI1OQ==","avatar_url":"https://avatars0.githubusercontent.com/u/925259?v=4","gravatar_id":"","url":"https://api.github.com/users/rsvoboda","html_url":"https://github.com/rsvoboda","followers_url":"https://api.github.com/users/rsvoboda/followers","following_url":"https://api.github.com/users/rsvoboda/following{/other_user}","gists_url":"https://api.github.com/users/rsvoboda/gists{/gist_id}","starred_url":"https://api.github.com/users/rsvoboda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsvoboda/subscriptions","organizations_url":"https://api.github.com/users/rsvoboda/orgs","repos_url":"https://api.github.com/users/rsvoboda/repos","events_url":"https://api.github.com/users/rsvoboda/events{/privacy}","received_events_url":"https://api.github.com/users/rsvoboda/received_events","type":"User","site_admin":false,"name":"Rostislav Svoboda","company":"JBoss by Red Hat by IBM","blog":"https://twitter.com/r_svoboda","location":"Brno, Czech Republic","email":"rsvoboda#redhat.com","hireable":null,"bio":null,"public_repos":138,"public_gists":3,"followers":18,"following":2,"created_at":"2011-07-19T12:18:08Z","updated_at":"2020-04-29T14:38:31Z"}
at org.kohsuke.github.GitHubResponse.parseBody(GitHubResponse.java:87)
at org.kohsuke.github.GitHubClient.lambda$fetch$0(GitHubClient.java:146)
at org.kohsuke.github.GitHubClient.createResponse(GitHubClient.java:404)
at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:358)
... 37 more
Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `org.kohsuke.github.GHMyself` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
at [Source: (String)"{"login":"rsvoboda","id":925259,"node_id":"MDQ6VXNlcjkyNTI1OQ==","avatar_url":"https://avatars0.githubusercontent.com/u/925259?v=4","gravatar_id":"","url":"https://api.github.com/users/rsvoboda","html_url":"https://github.com/rsvoboda","followers_url":"https://api.github.com/users/rsvoboda/followers","following_url":"https://api.github.com/users/rsvoboda/following{/other_user}","gists_url":"https://api.github.com/users/rsvoboda/gists{/gist_id}","starred_url":"https://api.github.com/users/rsvobod"[truncated 734 chars]; line: 1, column: 2]
at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1592)
at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1058)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1297)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:326)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1719)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1261)
at org.kohsuke.github.GitHubResponse.parseBody(GitHubResponse.java:84)
Reproducer details:
generate the app - https://quarkus.io/guides/getting-started#bootstrapping-the-project
add dependencies and quarkus.native.enable-https-url-handler propery for native
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>github-api</artifactId>
<version>1.111</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jackson</artifactId>
</dependency>
...
<properties>
<quarkus.package.type>native</quarkus.package.type>
<quarkus.native.enable-https-url-handler>true</quarkus.native.enable-https-url-handler>
</properties>
change GreetingResource
GitHub github = new GitHubBuilder().withOAuthToken(ghToken).build();
GHRepository ghRepo = github.getRepository("quarkusio/quarkus");
return ghRepo.toString();
drop .body(is("hello")) from GreetingResourceTest
run mvn clean verify -Dnative
You can also use #RegisterForReflection(targets = GHObject.class) on any of your classes
My guess is that you will need to register all the GHObject hierarchy for reflection using a ReflectiveHierarchyBuildItem.
So that requires an extension. It would be a useful addition for the Platform IMHO.
If you are running in native mode and getting the error is because of reflection to resolve the annotate your class with #RegisterForReflection also add a no-args constructor in your class then rebuild the application and run your error will be resolved.
for more reference see quarkus guide on the link
I am using Spring Boot in my Java application, and to deployment used Tomcat 7. I was trying to deploy multiple Spring Boot projects in the same server it showing exceptions. But deploy one Spring Boot application and another one was Spring application means it's working.
The exception is:
2016-01-22 08:05:18.301 INFO 16021 --- [ost-startStop-1] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'environmentManager' has been autodetected for JMX exposure
2016-01-22 08:05:18.303 INFO 16021 --- [ost-startStop-1] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'environmentManager': registering with JMX server as MBean [org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager]
2016-01-22 08:05:18.312 INFO 16021 --- [ost-startStop-1] .b.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/classes/, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/activation-1.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/antlr-2.7.7.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/aopalliance-1.0.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/aopalliance-repackaged-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/apns-0.1.6.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/asm-all-repackaged-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/aspectjrt-1.8.6.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/aspectjweaver-1.8.6.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/bcpkix-jdk15on-1.47.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/bcprov-jdk15on-1.47.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/bean-validator-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/class-model-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/classmate-1.0.0.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/com.ibm.jbatch-tck-spi-1.0.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/commons-beanutils-1.9.2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/commons-codec-1.9.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/commons-collections-3.2.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/commons-digester-2.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/commons-fileupload-1.3.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/commons-io-2.2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/commons-lang-2.4.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/commons-logging-1.0.4.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/commons-validator-1.3.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/config-types-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/core-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/dom4j-1.6.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hamcrest-core-1.3.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hibernate-commons-annotations-4.0.5.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hibernate-core-4.3.10.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hibernate-entitymanager-4.3.10.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hibernate-jpamodelgen-4.3.10.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hibernate-validator-5.1.3.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hk2-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hk2-api-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hk2-config-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hk2-locator-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hk2-runlevel-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hk2-utils-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hornetq-commons-2.4.7.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hornetq-core-client-2.4.7.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hornetq-jms-client-2.4.7.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hornetq-journal-2.4.7.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hornetq-native-2.4.7.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/hsqldb-2.3.3.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/httpclient-4.5.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/httpcore-4.4.3.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/imgscalr-lib-4.2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jackson-annotations-2.4.6.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jackson-core-2.4.6.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jackson-core-asl-1.4.0.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jackson-databind-2.4.6.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jackson-jaxrs-base-2.3.2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jackson-jaxrs-json-provider-2.3.2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jackson-mapper-asl-1.4.0.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jackson-module-jaxb-annotations-2.3.2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jandex-1.1.0.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/javassist-3.18.1-GA.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/javax.annotation-api-1.2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/javax.batch-api-1.0.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/javax.inject-1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/javax.inject-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/javax.transaction-api-1.2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/javax.ws.rs-api-2.0.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jboss-annotations-api_1.2_spec-1.0.0.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jboss-jms-api_2.0_spec-1.0.0.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jboss-logging-3.1.3.GA.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jboss-logging-annotations-1.2.0.Beta1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jboss-websocket-api_1.1_spec-1.1.0.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jcl-over-slf4j-1.7.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-bean-validation-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-client-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-common-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-container-servlet-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-container-servlet-core-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-guava-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-media-json-jackson-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-media-multipart-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-server-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jersey-spring3-2.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jettison-1.2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jgroups-3.3.4.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/json-simple-1.1.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/jul-to-slf4j-1.7.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/junit-4.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/log4j-over-slf4j-1.7.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/logback-classic-1.1.3.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/logback-core-1.1.3.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/mail-1.4.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/mimepull-1.9.3.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/mysql-connector-java-5.1.35.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/neo4j-cypher-compiler-2.1-2.1.5.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/netty-all-4.0.13.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/opencsv-2.3.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/osgi-resource-locator-1.0.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/parboiled-core-1.1.6.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/parboiled-scala_2.10-1.1.6.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/scala-library-2.10.4.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/slf4j-api-1.7.12.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/snakeyaml-1.14.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-aop-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-aspects-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-batch-core-3.0.4.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-batch-infrastructure-3.0.4.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-beans-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-actuator-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-autoconfigure-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-actuator-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-aop-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-batch-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-data-jpa-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-hornetq-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-jdbc-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-jersey-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-logging-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-security-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-undertow-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-boot-starter-web-1.2.5.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-bridge-2.3.0-b10.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-cloud-commons-1.0.2.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-cloud-context-1.0.2.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-cloud-security-1.0.2.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-cloud-starter-1.0.3.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-cloud-starter-oauth2-1.0.3.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-cloud-starter-security-1.0.3.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-context-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-core-4.1.7.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-data-commons-1.9.2.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-data-jpa-1.7.2.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-expression-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-jdbc-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-jms-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-messaging-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-orm-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-retry-1.1.2.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-security-config-3.2.7.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-security-core-3.2.7.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-security-crypto-3.2.7.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-security-jwt-1.0.3.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-security-oauth2-2.0.7.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-security-web-3.2.7.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-social-core-1.1.2.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-tx-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-web-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/spring-webmvc-4.1.6.RELEASE.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/tiger-types-1.4.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/tomcat-jdbc-8.0.23.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/tomcat-juli-8.0.23.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/undertow-core-1.1.7.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/undertow-servlet-1.1.7.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/undertow-websockets-jsr-1.1.7.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/validation-api-1.1.0.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/xml-apis-1.0.b2.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/xmlpull-1.1.3.1.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/xnio-api-3.3.0.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/xnio-nio-3.3.0.Final.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/xpp3_min-1.1.4c.jar, file:/usr/local/apache-tomcat-7.0.34/webapps/sunbox/WEB-INF/lib/xstream-1.4.2.jar]
2016-01-22 08:05:18.317 INFO 16021 --- [ost-startStop-1] utoConfigurationReportLoggingInitializer :
Error starting ApplicationContext. To display the auto-configuration report enable debug logging (start with --debug)
2016-01-22 08:05:18.324 ERROR 16021 --- [ost-startStop-1] o.s.boot.SpringApplication : Application startup failed
org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [org.springframework.cloud.context.environment.EnvironmentManager#5edb3f8d] with key 'environmentManager'; nested exception is javax.management.InstanceAlreadyExistsException: org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager
at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:625)
at org.springframework.jmx.export.MBeanExporter.registerBeans(MBeanExporter.java:550)
at org.springframework.jmx.export.MBeanExporter.afterSingletonsInstantiated(MBeanExporter.java:432)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:775)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
at org.springframework.boot.context.web.SpringBootServletInitializer.run(SpringBootServletInitializer.java:119)
at org.springframework.boot.context.web.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:110)
at org.springframework.boot.context.web.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:69)
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5274)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: javax.management.InstanceAlreadyExistsException: org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager
at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
at org.springframework.jmx.support.MBeanRegistrationSupport.doRegister(MBeanRegistrationSupport.java:195)
at org.springframework.jmx.export.MBeanExporter.registerBeanInstance(MBeanExporter.java:678)
at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:615)
... 25 common frames omitted
I think what happens when you deploy multiple Spring Boot applications is those apps try to register to jmx on the same jvm using the same name.
Check this issue for the solution https://github.com/spring-cloud/spring-cloud-config/issues/118
Copy-paste from DavidBiesack's solution
(regarding application.properties or application.yaml)
I was able to solve this by defining the following in my application.properties
spring.application.name=my-app-name
spring.jmx.default-domain=my-app-name
Or for application.yaml:
spring:
application:
name: my-app-name
jmx:
default-domain: my-app-name
In my case, we need to have two of the same application online during updates before cutting over sessions to maintain 100% uptime. In this case, you cannot just specify a unique name (unless you update it for each potential deployment). Instead, I disabled jmx with the following setting in my application.yml file for all profiles:
spring:
jmx:
enabled: false
I think the jmx doesn't allow 2 beans with the same objectName to be created.
You have 2 options.
Turn off JMX and try to start it again.
Change the name of the bean environmentManager(and any other duplicated bean) on one of the applications you are putting in the same container
EJBs instrumented by the latest Cobertura (svn rev 794) will not load. Assembly and tests work fine with un-instrumented EJBs and EJBs instrumented with 1.9.4.1, so I'm pretty sure it's related to Cobertura.
I'm trying to use the latest Cobertura to take advantage of the ignoreTrivial and ignoreMethodAnnotation features.
The following is logged during container startup:
Apache OpenEJB 3.2-SNAPSHOT build: 20101105-01:53
http://openejb.apache.org/
INFO - openejb.home = C:\TEMP
INFO - openejb.base = C:\TEMP
DEBUG - Using default 'openejb.assembler=org.apache.openejb.assembler.classic.Assembler'
DEBUG - Using default 'openejb.jndiname.failoncollision=true'
DEBUG - Using default 'openejb.configurator=org.apache.openejb.config.ConfigurationFactory'
DEBUG - Using default 'openejb.validation.skip=false'
DEBUG - Using default 'openejb.deploymentId.format={ejbName}'
DEBUG - Using default 'openejb.debuggable-vm-hackery=false'
DEBUG - Using default 'openejb.webservices.enabled=true'
DEBUG - Using default 'openejb.vendor.config=ALL' Possible values are: geronimo, glassfish, jboss, weblogic or NONE or ALL
DEBUG - Using default 'openejb.provider.default=org.apache.openejb.embedded'
INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
DEBUG - Using default 'openejb.deployments.classpath=true'
INFO - Using 'openejb.deployments.classpath.include=.*classes/.*'
DEBUG - Using default 'openejb.deployments.classpath.exclude=.*'
DEBUG - Using default 'openejb.deployments.classpath.require.descriptor=client' Possible values are: ejb, client or NONE or ALL
INFO - Using 'openejb.deployments.classpath.filter.descriptors=true'
DEBUG - Using default 'openejb.deployments.classpath.filter.systemapps=true'
DEBUG - Inspecting classpath for applications: 1 urls.
INFO - Found EjbModule in classpath: C:\EclipseHeliosBase\CoverageTest\testResults\coverage\instrumented\classes
DEBUG - URLs after filtering: 10
DEBUG - Annotations path: file:/C:/EclipseHeliosBase/CoverageTest/testResults/coverage/instrumented/classes/
DEBUG - Searched 1 classpath urls in 47 milliseconds. Average 47 milliseconds per url.
DEBUG - Using default 'openejb.deployments.classpath.ear=true'
INFO - Beginning load: C:\EclipseHeliosBase\CoverageTest\testResults\coverage\instrumented\classes
DEBUG - Using default 'openejb.tempclassloader.skip=none' Possible values are: none, annotations, enums or NONE or ALL
DEBUG - Using default 'openejb.tempclassloader.skip=none' Possible values are: none, annotations, enums or NONE or ALL
INFO - Configuring enterprise application: classpath.ear
DEBUG - No ejb-jar.xml found assuming annotated beans present: classpath.ear, module: classes
DEBUG - No beans.xml found assuming annotated beans present: classpath.ear, module: classes
DEBUG - Searching for annotated application exceptions (see OPENEJB-980)
FATAL - OpenEJB has encountered a fatal error and cannot be started: The Assembler encountered an unexpected error while attempting to build the container system.
java.lang.reflect.GenericSignatureFormatError
at sun.reflect.generics.parser.SignatureParser.error(SignatureParser.java:103)
at sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature(SignatureParser.java:233)
at sun.reflect.generics.parser.SignatureParser.parseTypeSignature(SignatureParser.java:359)
at sun.reflect.generics.parser.SignatureParser.parseTypeSig(SignatureParser.java:157)
at sun.reflect.annotation.AnnotationParser.parseSig(AnnotationParser.java:367)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:181)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Method.declaredAnnotations(Method.java:695)
at java.lang.reflect.Method.getDeclaredAnnotations(Method.java:688)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.apache.xbean.finder.AbstractFinder$Annotatable.<init>(AbstractFinder.java:301)
at org.apache.xbean.finder.AbstractFinder$MethodInfo.<init>(AbstractFinder.java:433)
at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:150)
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.createInheritedClassFinder(AnnotationDeployer.java:3591)
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1074)
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:688)
at org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:236)
at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:259)
at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:660)
at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:618)
at org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:381)
at org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:303)
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:282)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:130)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:63)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:276)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at test.EJBBridge.initContext(EJBBridge.java:35)
at test.EJBBridge.<clinit>(EJBBridge.java:13)
at test.ejb.InheritsEJBTest.helloTest(InheritsEJBTest.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:879)
I remember seeing in Cobertura's svn logs that at some point they moved to using ASM 3.0 to perform their bytecode manipulation, not sure if that might be the culprit.
Anybody have any ideas on how to get these two to play nicely?
Thanks,
Jim