We have a new project that uses Facebook Swift / Thrift, Guice, Airlift along with DW 0.9.3. Running DW out of Eclipse or running tests with DW under junit all works fine. Issues start with maven shade. First error was
ERROR [2016-07-18 12:24:16,937] RestRunnerImpl: failed to start ! javax.validation.ValidationException: Unable to find provider: class org.hibernate.validator.HibernateValidator ! at javax.validation.Validation$ProviderSpecificBootstrapImpl.configure(Validation.java:224) ~[nuoagent2.jar:na] ! at io.dropwizard.validation.BaseValidator.newConfiguration(BaseValidator.java:28) ~[nuoagent2.jar:na] ! at io.dropwizard.jersey.validation.Validators.newConfiguration(Validators.java:35) ~[nuoagent2.jar:na] ! at io.dropwizard.jersey.validation.Validators.newValidatorFactory(Validators.java:27) ~[nuoagent2.jar:na] ! at io.dropwizard.setup.Bootstrap.<init>(Bootstrap.java:68) ~[nuoagent2.jar:na] ! at io.dropwizard.Application.run(Application.java:72) ~[nuoagent2.jar:na] ! at com.nuodb.nagent.rest.RestRunnerImpl.start(RestRunnerImpl.java:43) ~[nuoagent2.jar:na] ! at com.nuodb.nagent.AgentMain.run(AgentMain.java:263) [nuoagent2.jar:na] ! at com.nuodb.nagent.AgentMain.main(AgentMain.java:153) [nuoagent2.jar:na] which I was able to fix by editing and re-jar-ing META-INF/services/javax.validation.spi.ValidationProvider, with both providers (Apache came in via airlift): org.apache.bval.jsr303.ApacheValidationProvider org.hibernate.validator.HibernateValidator Now I get a parsing error on the yml file. We test .yml files with both DefaultServerFactory and SimpleServerFactory. Either stumbles over /opt/nuodb/etc/nagentrest.yml has an error: * Failed to parse configuration at: server.applicationConnectors.[0]; Could not resolve type id 'http' into a subtype of [simple type, class io.dropwizard.jetty.ConnectorFactory]: known type ids = [ConnectorFactory] at [Source: N/A; line: -1, column: -1] (through reference chain: com.nuodb.nagent.rest.NewAgentRestConfig["server"]->io.dropwizard.server.DefaultServerFactory["applicationConnectors"]->java.util.ArrayList[0]) This is well-documented in other threads, and I've made sure that the uber-jar contains all the services. <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> I even added some code stolen from DiscoverableSubtypeResolver which prints out various DW factories: resource jar:file:/Users/rwirth/dev/nuodb_raft/nagent/target/nuoagent2-2.0-jar-with-dependencies.jar!/META-INF/services/io.dropwizard.jackson.Discoverable io.dropwizard.server.ServerFactory resource jar:file:/Users/rwirth/dev/nuodb_raft/nagent/target/nuoagent2-2.0-jar-with-dependencies.jar!/META-INF/services/io.dropwizard.jetty.ConnectorFactory io.dropwizard.jetty.HttpConnectorFactory io.dropwizard.jetty.HttpsConnectorFactory resource jar:file:/Users/rwirth/dev/nuodb_raft/nagent/target/nuoagent2-2.0-jar-with-dependencies.jar!/META-INF/services/io.dropwizard.logging.AppenderFactory io.dropwizard.logging.ConsoleAppenderFactory io.dropwizard.logging.FileAppenderFactory io.dropwizard.logging.SyslogAppenderFactory resource jar:file:/Users/rwirth/dev/nuodb_raft/nagent/target/nuoagent2-2.0-jar-with-dependencies.jar!/META-INF/services/io.dropwizard.metrics.ReporterFactory io.dropwizard.metrics.ConsoleReporterFactory io.dropwizard.metrics.CsvReporterFactory io.dropwizard.metrics.Slf4jReporterFactory resource jar:file:/Users/rwirth/dev/nuodb_raft/nagent/target/nuoagent2-2.0-jar-with-dependencies.jar!/META-INF/services/io.dropwizard.server.ServerFactory io.dropwizard.server.DefaultServerFactory io.dropwizard.server.SimpleServerFactory The list looks correct, both running from java -jar uber-jar and running out of Eclipse. I'm running out of ideas where else to look. Perhaps a different class loader / service loader issue? Any hints are much appreciated! -- You received this message because you are subscribed to the Google Groups "dropwizard-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
