Hi Stefan, Could you include a full stack trace please?
Thanks, Andrus > On Mar 23, 2022, at 1:04 AM, Stefan Stegic <stefanste...@gmail.com> wrote: > > Hi, > > > First some context: I'm working on a custom Minecraft server (Spigot) > plugin. It's just a JAR that you export and place somewhere in the server's > folder structure. > > I wrote a simple insert query via Cayenne's API. It works when I run the > example JAR directly via executing Main from the command line (java -cp > myPlugin.jar path.to.Main), but it fails with the following error when > executed by the server in my plugin's OnEnable lifecycle hook: > > org.apache.cayenne.di.DIRuntimeException: DI container has no binding for > key <BindingKey: org.apache.cayenne.configuration.ObjectContextFactory> > > > My initial theory was that it's being executed from a different thread, so > the DI system might not have access to that dependency for some reason, but > it seems like the server executes this lifecycle hook from the main thread > as well (though they've named the thread "Server thread", and I don't know > how to check if it's the main thread for sure). Not sure if this is a > promising direction to pursue, but I got the hunch by looking at the > threadInjector bits of Cayenne's DI container docs. > > My example looks like this: > > ServerRuntime cayenneRuntime = ServerRuntime.builder() > .addConfig("cayenne-project.xml") > .build();ObjectContext ctx = cayenneRuntime.newContext(); > PlayerConnectionEvent newEvent = > ctx.newObject(PlayerConnectionEvent.class); > newEvent.setEventType(eType); > newEvent.setPlayerName(playerName); > newEvent.setIpAddress(ipAddress); > newEvent.setTimestampUnixSeconds(unixSeconds); > > ctx.commitChanges(); > > Some help would be greatly appreciated, thanks in advance! > -- > S poštovanjem, > *Stefan Stegić*