Hi Andrew, > java.lang.NoSuchMethodError: org.apache.cayenne.di.spi.Modu leLoader.load(Ljava/lang/Class;)Ljava/util/List; This seems like binary incompatibility with cayenne-di lib, have you tried to rebuild whole project? And how do you include Cayenne, is it Maven?
> binder.bindMap(Constants.PROPERTIES_MAP).put(Constants.SERVER_CONTEXTS_SYNC_PROPERTY, "false"); This should be replaced with cleaner ServerModule. contributeProperties(binder).put(Constants.SERVER_CONTEXTS_SYNC_PROPERTY, "false"); On Mon, Sep 4, 2017 at 5:42 PM, Andrew Willerding <[email protected]> wrote: > Hi, > > I am trying to use a custom location for the cayenne configuration files > and I'm getting the exception below on the following code on the line that > executes ServerRuntime.builder() and I don't know what is missing. > I'm using version 4.0.B1. > I am also not sure how to replace the deprecated bindMap call with the > proper replacement method. > > Any help and insight would be greatly appreciated, > > Andrew > > if (!serverRuntimeList.containsKey(pathToCayenneXMLFile)) { > Module myModule = (Binder binder) -> { > binder.bind(ResourceLocator.class).toInstance(new > FilesystemResourceLocator(pathForCayenne)); > binder.bindMap(Constants.PROPE > RTIES_MAP).put(Constants.SERVER_CONTEXTS_SYNC_PROPERTY, "false"); > //binder.bind(QueryCache.class > ).to(EhCacheQueryCache.class); > }; > runtime = ServerRuntime.builder().addCon > fig(cayenneXMLFileName) > .addModule(myModule) > .build(); > if (runtime != null) { > serverRuntimeList.put(pathToCayenneXMLFile, runtime); > } else { > throw new RuntimeException("ORMCayenne Error"); > } > } > > > javax.servlet.ServletException: com.vaadin.server.ServiceException: > java.lang.NoSuchMethodError: org.apache.cayenne.di.spi.Modu > leLoader.load(Ljava/lang/Class;)Ljava/util/List; > com.vaadin.server.VaadinServlet.service(VaadinServlet.java:383) > javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte > r.java:52) > org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log > 4jServletFilter.java:71) > > *root cause* > > com.vaadin.server.ServiceException: java.lang.NoSuchMethodError: > org.apache.cayenne.di.spi.ModuleLoader.load(Ljava/lang/Class > ;)Ljava/util/List; > com.vaadin.server.VaadinService.handleExceptionDuringRequest > (VaadinService.java:1620) > com.vaadin.server.VaadinService.handleRequest(VaadinService. > java:1580) > com.vaadin.server.VaadinServlet.service(VaadinServlet.java:381) > javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte > r.java:52) > org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log > 4jServletFilter.java:71) > > *root cause* > > java.lang.NoSuchMethodError: org.apache.cayenne.di.spi.Modu > leLoader.load(Ljava/lang/Class;)Ljava/util/List; > org.apache.cayenne.configuration.server.ServerRuntimeBuilder > .autoLoadedModules(ServerRuntimeBuilder.java:238) > org.apache.cayenne.configuration.server.ServerRuntimeBuilder > .build(ServerRuntimeBuilder.java:226) > com.callistacti.clientbase.ClientBaseAdmin.getServerRuntime( > ClientBaseAdmin.java:304) > com.callistacti.clientbase.ClientBaseAdmin.initClientBaseAdm > in(ClientBaseAdmin.java:91) > com.callistacti.clientbase.UI_ClientBase.<clinit>(UI_ClientB > ase.java:62) > java.lang.Class.forName0(Native Method) > java.lang.Class.forName(Class.java:348) > com.vaadin.server.DefaultUIProvider.getUIClass(DefaultUIProv > ider.java:33) > com.vaadin.server.BootstrapHandler.synchronizedHandleRequest > (BootstrapHandler.java:400) > com.vaadin.server.SynchronizedRequestHandler.handleRequest(S > ynchronizedRequestHandler.java:41) > com.vaadin.server.VaadinService.handleRequest(VaadinService. > java:1568) > com.vaadin.server.VaadinServlet.service(VaadinServlet.java:381) > javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte > r.java:52) > org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log > 4jServletFilter.java:71) > > -- Best regards, Nikita Timofeev
