Deploying locally built WAR

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Deploying locally built WAR

Ryan Underwood

I built the war with no issues, dropped it into the tomcat folder (in docker) and bounced the container.  Now the MySQL authentication/extension appears to have issues.  Any ideas?

For reference, I’m still troubleshooting the fact that I cannot connect to any remote RDP servers (or any servers) on my installation, though it’s a mirror of a friend’s built with the same scripts. I rebuilt the war to add logging information around the areas that are failing.

Thank you

 

17:41:36.046 [localhost-startStop-1] ERROR o.a.g.extension.ProviderFactory - authentication provider extension failed to start: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty

17:41:36.053 [localhost-startStop-1] DEBUG o.a.g.extension.ProviderFactory - org.apache.guacamole.auth.mysql.MySQLAuthenticationProvider instantiation failed.

java.lang.reflect.InvocationTargetException: null

        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_131]

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_131]

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_131]

        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_131]

        at org.apache.guacamole.extension.ProviderFactory.newInstance(ProviderFactory.java:59) ~[ProviderFactory.class:na]

        at org.apache.guacamole.extension.AuthenticationProviderFacade.<init>(AuthenticationProviderFacade.java:68) [AuthenticationProviderFacade.class:na]

        at org.apache.guacamole.extension.ExtensionModule.bindAuthenticationProvider(ExtensionModule.java:165) [ExtensionModule.class:na]

        at org.apache.guacamole.extension.ExtensionModule.bindAuthenticationProviders(ExtensionModule.java:181) [ExtensionModule.class:na]

        at org.apache.guacamole.extension.ExtensionModule.loadExtensions(ExtensionModule.java:378) [ExtensionModule.class:na]

        at org.apache.guacamole.extension.ExtensionModule.configureServlets(ExtensionModule.java:433) [ExtensionModule.class:na]

        at com.google.inject.servlet.ServletModule.configure(ServletModule.java:53) [guice-servlet-3.0.jar:na]

        at com.google.inject.AbstractModule.configure(AbstractModule.java:59) [guice-3.0.jar:na]

        at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223) [guice-3.0.jar:na]

        at com.google.inject.spi.Elements.getElements(Elements.java:101) [guice-3.0.jar:na]

        at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:133) [guice-3.0.jar:na]

        at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:95) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:83) [guice-3.0.jar:na]

        at org.apache.guacamole.GuacamoleServletContextListener.getInjector(GuacamoleServletContextListener.java:89) [GuacamoleServletContextListener.class:na]

        at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:45) [guice-servlet-3.0.jar:na]

        at org.apache.guacamole.GuacamoleServletContextListener.contextInitialized(GuacamoleServletContextListener.java:81) [GuacamoleServletContextListener.class:na]

        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4728) [catalina.jar:8.0.20]

        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5162) [catalina.jar:8.0.20]

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.0.20]

        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) [catalina.jar:8.0.20]

        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) [catalina.jar:8.0.20]

        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) [catalina.jar:8.0.20]

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:917) [catalina.jar:8.0.20]

        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1701) [catalina.jar:8.0.20]

        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131]

        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131]

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131]

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131]

        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]

Caused by: com.google.inject.internal.util.$ComputationException: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041) ~[guice-3.0.jar:na]

        at com.google.inject.internal.FailableCache.get(FailableCache.java:50) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:125) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:507) ~[guice-3.0.jar:na]

        at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run(AbstractBindingProcessor.java:159) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:44) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:122) [guice-3.0.jar:na]

        at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:95) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:72) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:62) [guice-3.0.jar:na]

        at org.apache.guacamole.auth.mysql.MySQLInjectorProvider.create(MySQLInjectorProvider.java:42) ~[na:na]

        at org.apache.guacamole.auth.jdbc.JDBCInjectorProvider.get(JDBCInjectorProvider.java:80) ~[na:na]

        at org.apache.guacamole.auth.jdbc.InjectedAuthenticationProvider.<init>(InjectedAuthenticationProvider.java:68) ~[na:na]

        at org.apache.guacamole.auth.mysql.MySQLAuthenticationProvider.<init>(MySQLAuthenticationProvider.java:42) ~[na:na]

        ... 34 common frames omitted

Caused by: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041) ~[guice-3.0.jar:na]

        at com.google.inject.internal.FailableCache.get(FailableCache.java:50) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:65) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:73) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:28) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:36) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:32) ~[guice-3.0.jar:na]

        at com.google.inject.internal.FailableCache$1.apply(FailableCache.java:39) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549) ~[guice-3.0.jar:na]

        ... 51 common frames omitted

Caused by: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty

        at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_131]

        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_131]

        at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_131]

        at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:662) ~[guice-3.0.jar:na]

        at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:356) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:151) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:585) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:543) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:529) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:847) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createProviderBinding(InjectorImpl.java:317) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:805) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:853) ~[guice-3.0.jar:na]

        at com.google.inject.internal.SingleFieldInjector.<init>(SingleFieldInjector.java:41) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore.getInjectors(MembersInjectorStore.java:125) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore.createWithListeners(MembersInjectorStore.java:95) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore.access$000(MembersInjectorStore.java:34) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:42) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:39) ~[guice-3.0.jar:na]

        at com.google.inject.internal.FailableCache$1.apply(FailableCache.java:39) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549) ~[guice-3.0.jar:na]

        ... 61 common frames omitted

Caused by: java.lang.ClassNotFoundException: org.apache.guacamole.net.auth.ConnectionRecordSet$SortableProperty

        at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_131]

        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]

        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]

        ... 88 common frames omitted

17:41:36.053 [localhost-startStop-1] DEBUG o.a.g.extension.ExtensionModule - [1] Binding AuthenticationProvider "org.apache.guacamole.auth.mysql.MySQLSharedAuthenticationProvider".

17:41:36.054 [localhost-startStop-1] INFO  o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole".

12-Oct-2017 17:41:36.067 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.connection.ConnectionDirectory.add(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@124b106d]. This could indicate a bug.  The method may be intercepted twice, or may not be intercepted at all.

12-Oct-2017 17:41:36.068 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.connection.ConnectionDirectory.update(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@124b106d]. This could indicate a bug.  The method may be intercepted twice, or may not be intercepted at all.

12-Oct-2017 17:41:36.068 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.connectiongroup.ConnectionGroupDirectory.add(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@124b106d]. This could indicate a bug.  The method may be intercepted twice, or may not be intercepted at all.

12-Oct-2017 17:41:36.069 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.connectiongroup.ConnectionGroupDirectory.update(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@124b106d]. This could indicate a bug.  The method may be intercepted twice, or may not be intercepted at all.

17:41:36.072 [localhost-startStop-1] ERROR o.a.g.extension.ProviderFactory - authentication provider extension failed to start: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty

17:41:36.074 [localhost-startStop-1] DEBUG o.a.g.extension.ProviderFactory - org.apache.guacamole.auth.mysql.MySQLSharedAuthenticationProvider instantiation failed.

java.lang.reflect.InvocationTargetException: null

        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_131]

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_131]

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_131]

        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_131]

        at org.apache.guacamole.extension.ProviderFactory.newInstance(ProviderFactory.java:59) ~[ProviderFactory.class:na]

        at org.apache.guacamole.extension.AuthenticationProviderFacade.<init>(AuthenticationProviderFacade.java:68) [AuthenticationProviderFacade.class:na]

        at org.apache.guacamole.extension.ExtensionModule.bindAuthenticationProvider(ExtensionModule.java:165) [ExtensionModule.class:na]

        at org.apache.guacamole.extension.ExtensionModule.bindAuthenticationProviders(ExtensionModule.java:181) [ExtensionModule.class:na]

        at org.apache.guacamole.extension.ExtensionModule.loadExtensions(ExtensionModule.java:378) [ExtensionModule.class:na]

        at org.apache.guacamole.extension.ExtensionModule.configureServlets(ExtensionModule.java:433) [ExtensionModule.class:na]

        at com.google.inject.servlet.ServletModule.configure(ServletModule.java:53) [guice-servlet-3.0.jar:na]

        at com.google.inject.AbstractModule.configure(AbstractModule.java:59) [guice-3.0.jar:na]

        at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223) [guice-3.0.jar:na]

        at com.google.inject.spi.Elements.getElements(Elements.java:101) [guice-3.0.jar:na]

        at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:133) [guice-3.0.jar:na]

        at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:95) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:83) [guice-3.0.jar:na]

        at org.apache.guacamole.GuacamoleServletContextListener.getInjector(GuacamoleServletContextListener.java:89) [GuacamoleServletContextListener.class:na]

        at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:45) [guice-servlet-3.0.jar:na]

        at org.apache.guacamole.GuacamoleServletContextListener.contextInitialized(GuacamoleServletContextListener.java:81) [GuacamoleServletContextListener.class:na]

        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4728) [catalina.jar:8.0.20]

        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5162) [catalina.jar:8.0.20]

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.0.20]

        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) [catalina.jar:8.0.20]

        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) [catalina.jar:8.0.20]

        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) [catalina.jar:8.0.20]

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:917) [catalina.jar:8.0.20]

        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1701) [catalina.jar:8.0.20]

        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131]

        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131]

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131]

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131]

        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]

Caused by: com.google.inject.internal.util.$ComputationException: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041) ~[guice-3.0.jar:na]

        at com.google.inject.internal.FailableCache.get(FailableCache.java:50) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:125) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:507) ~[guice-3.0.jar:na]

        at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run(AbstractBindingProcessor.java:159) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:44) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:122) [guice-3.0.jar:na]

        at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:95) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:72) [guice-3.0.jar:na]

        at com.google.inject.Guice.createInjector(Guice.java:62) [guice-3.0.jar:na]

        at org.apache.guacamole.auth.mysql.MySQLInjectorProvider.create(MySQLInjectorProvider.java:42) ~[na:na]

        at org.apache.guacamole.auth.jdbc.JDBCInjectorProvider.get(JDBCInjectorProvider.java:80) ~[na:na]

        at org.apache.guacamole.auth.jdbc.InjectedAuthenticationProvider.<init>(InjectedAuthenticationProvider.java:68) ~[na:na]

        at org.apache.guacamole.auth.mysql.MySQLSharedAuthenticationProvider.<init>(MySQLSharedAuthenticationProvider.java:42) ~[na:na]

        ... 34 common frames omitted

Caused by: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041) ~[guice-3.0.jar:na]

        at com.google.inject.internal.FailableCache.get(FailableCache.java:50) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:65) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:73) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:28) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:36) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:32) ~[guice-3.0.jar:na]

        at com.google.inject.internal.FailableCache$1.apply(FailableCache.java:39) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549) ~[guice-3.0.jar:na]

        ... 51 common frames omitted

Caused by: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty

        at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_131]

        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_131]

        at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_131]

        at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:662) ~[guice-3.0.jar:na]

        at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:356) ~[guice-3.0.jar:na]

        at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:151) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:585) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:543) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:529) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:847) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createProviderBinding(InjectorImpl.java:317) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:805) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205) ~[guice-3.0.jar:na]

        at com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:853) ~[guice-3.0.jar:na]

        at com.google.inject.internal.SingleFieldInjector.<init>(SingleFieldInjector.java:41) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore.getInjectors(MembersInjectorStore.java:125) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore.createWithListeners(MembersInjectorStore.java:95) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore.access$000(MembersInjectorStore.java:34) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:42) ~[guice-3.0.jar:na]

        at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:39) ~[guice-3.0.jar:na]

        at com.google.inject.internal.FailableCache$1.apply(FailableCache.java:39) ~[guice-3.0.jar:na]

        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549) ~[guice-3.0.jar:na]

        ... 61 common frames omitted

Caused by: java.lang.ClassNotFoundException: org.apache.guacamole.net.auth.ConnectionRecordSet$SortableProperty

        at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_131]

        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]

        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]

        ... 88 common frames omitted

Reply | Threaded
Open this post in threaded view
|

Re: Deploying locally built WAR

vnick


On Thu, Oct 12, 2017 at 1:47 PM, Ryan Underwood <[hidden email]> wrote:

I built the war with no issues, dropped it into the tomcat folder (in docker) and bounced the container.  Now the MySQL authentication/extension appears to have issues.  Any ideas?

For reference, I’m still troubleshooting the fact that I cannot connect to any remote RDP servers (or any servers) on my installation, though it’s a mirror of a friend’s built with the same scripts. I rebuilt the war to add logging information around the areas that are failing.

Thank you

 

17:41:36.046 [localhost-startStop-1] ERROR o.a.g.extension.ProviderFactory - authentication provider extension failed to start: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty



If you built a new WAR, you also probably need to replace the MySQL JAR file.  There have been some recent changes that would impact this class mentioned, specifically - the ConnectionRecordSet has been changed to ActivityRecordSet, so the WAR and JAR need to match.  You'll need to drop the new JAR file into the Guacamole extensions folder.

-Nick 

Reply | Threaded
Open this post in threaded view
|

RE: Deploying locally built WAR

Ryan Underwood

I think that is part of the problem.  Could someone post the dockerfile that you guys used for the docker image on docker hub?  For some reason that one posted without the dockerfile.

Thank you

 

From: Nick Couchman [mailto:[hidden email]]
Sent: Thursday, October 12, 2017 1:50 PM
To: [hidden email]
Subject: Re: Deploying locally built WAR

 

 

 

On Thu, Oct 12, 2017 at 1:47 PM, Ryan Underwood <[hidden email]> wrote:

I built the war with no issues, dropped it into the tomcat folder (in docker) and bounced the container.  Now the MySQL authentication/extension appears to have issues.  Any ideas?

For reference, I’m still troubleshooting the fact that I cannot connect to any remote RDP servers (or any servers) on my installation, though it’s a mirror of a friend’s built with the same scripts. I rebuilt the war to add logging information around the areas that are failing.

Thank you

 

17:41:36.046 [localhost-startStop-1] ERROR o.a.g.extension.ProviderFactory - authentication provider extension failed to start: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty

 

 

If you built a new WAR, you also probably need to replace the MySQL JAR file.  There have been some recent changes that would impact this class mentioned, specifically - the ConnectionRecordSet has been changed to ActivityRecordSet, so the WAR and JAR need to match.  You'll need to drop the new JAR file into the Guacamole extensions folder.

 

-Nick 

 

Reply | Threaded
Open this post in threaded view
|

Re: Deploying locally built WAR

vnick
On Thu, Oct 12, 2017 at 2:49 PM, Ryan Underwood <[hidden email]> wrote:

I think that is part of the problem.  Could someone post the dockerfile that you guys used for the docker image on docker hub?  For some reason that one posted without the dockerfile.

Thank you

 


You can find the Dockerfile in the github repository:


-Nick 
Reply | Threaded
Open this post in threaded view
|

RE: Deploying locally built WAR

Ryan Underwood

Thanks Nick – not sure how I missed it in the root.

Now I have the image built from my local repo clone. I’ve modified some of the source to add logging because I still can’t connect to an RDP instance and the only error I get is:

9:50:16.382 [http-nio-8080-exec-9] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: java.net.ConnectException: Connection refused

19:50:16.384 [http-nio-8080-exec-9] DEBUG o.a.g.s.GuacamoleHTTPTunnelServlet - Internal error in HTTP tunnel.

org.apache.guacamole.GuacamoleServerException: java.net.ConnectException: Connection refused

 

This is the same error I get with the docker hub image too.  However, after adding some logging in the java classes and updating the logback.xml to go to trace, none of my messages show up anywhere.  Any thoughts?

Regards

-Ryan

 

From: Nick Couchman [mailto:[hidden email]]
Sent: Thursday, October 12, 2017 2:53 PM
To: [hidden email]
Subject: Re: Deploying locally built WAR

 

On Thu, Oct 12, 2017 at 2:49 PM, Ryan Underwood <[hidden email]> wrote:

I think that is part of the problem.  Could someone post the dockerfile that you guys used for the docker image on docker hub?  For some reason that one posted without the dockerfile.

Thank you

 

 

You can find the Dockerfile in the github repository:

 

 

-Nick 

Reply | Threaded
Open this post in threaded view
|

Re: Deploying locally built WAR

Mike Jumper
On Fri, Oct 13, 2017 at 1:00 PM, Ryan Underwood <[hidden email]> wrote:

Thanks Nick – not sure how I missed it in the root.

Now I have the image built from my local repo clone. I’ve modified some of the source to add logging because I still can’t connect to an RDP instance and the only error I get is:

9:50:16.382 [http-nio-8080-exec-9] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: java.net.ConnectException: Connection refused

19:50:16.384 [http-nio-8080-exec-9] DEBUG o.a.g.s.GuacamoleHTTPTunnelServlet - Internal error in HTTP tunnel.

org.apache.guacamole.GuacamoleServerException: java.net.ConnectException: Connection refused



This looks like guacd is unreachable. Is your Guacamole image configured to connect to a running copy of guacd (in another Docker container or otherwise)?

This is the same error I get with the docker hub image too.  However, after adding some logging in the java classes and updating the logback.xml to go to trace, none of my messages show up anywhere.  Any thoughts?


What logging did you add?

- Mike

Reply | Threaded
Open this post in threaded view
|

RE: Deploying locally built WAR

Ryan Underwood
I can telnet from guacamole to guacd and guacd gives me a protocol error when I do. I literally copied the scripts a buddy is using on Windows and his works fine.
I added logging to the classes throwing the error to provide more details on what was requested.

Sent from my Android phone using TouchDown (www.symantec.com)

-----Original Message-----
From: Mike Jumper [[hidden email]]
Received: Friday, 13 Oct 2017, 4:07PM
To: [hidden email] [[hidden email]]
Subject: Re: Deploying locally built WAR

On Fri, Oct 13, 2017 at 1:00 PM, Ryan Underwood <[hidden email]> wrote:

Thanks Nick – not sure how I missed it in the root.

Now I have the image built from my local repo clone. I’ve modified some of the source to add logging because I still can’t connect to an RDP instance and the only error I get is:

9:50:16.382 [http-nio-8080-exec-9] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: java.net.ConnectException: Connection refused

19:50:16.384 [http-nio-8080-exec-9] DEBUG o.a.g.s.GuacamoleHTTPTunnelServlet - Internal error in HTTP tunnel.

org.apache.guacamole.GuacamoleServerException: java.net.ConnectException: Connection refused



This looks like guacd is unreachable. Is your Guacamole image configured to connect to a running copy of guacd (in another Docker container or otherwise)?

This is the same error I get with the docker hub image too.  However, after adding some logging in the java classes and updating the logback.xml to go to trace, none of my messages show up anywhere.  Any thoughts?


What logging did you add?

- Mike

Reply | Threaded
Open this post in threaded view
|

RE: Deploying locally built WAR

Ryan Underwood

Solved: Apologies in advance for the long message – I figured it out but have questions on the docs and what it’s actually doing

 

From digging on this I saw tomcat had guacd on localhost:4802 which is NOT where it is – it’s at guac-guacd:4822

From the log file:

01:41:04.511 [http-nio-8080-exec-2] DEBUG o.a.g.net.InetGuacamoleSocket - Connecting to guacd at localhost:4822.

 

So I dug into the code that checks that and saw that the environment has a default setting of localhost for the guacd_hostname… and since my environment variable was set that seemed odd.  So then I see it’s reading /root/.guacamole/guacamole.properties and THAT file is being concatenated to MY guacamole.properties file that does not have a trailing newline.  When I added a line break to my guacamole.properties file it fixed it and loaded up.

 

So having gone through this, I have a few questions as to how this was supposed to work ** this may only apply to a docker installation **

  1. I created the properties file originally because it seemed like an easy way to set the config instead of on the docker run line. The documentation says “The guacamole.properties file is optional and is used to configure Guacamole in situations where the defaults are insufficient, or to provide additional configuration information for extensions.”  What actually is happening is the startup script is taking environment vars and creating the properties file (I think).  So the properties file is necessary, but me creating my own isn’t, since tomcat is actually reading it. Right?  And creating one can cause problems, even if it’s correct see #2…
  2. The properties file in /root/.guacamole (that is created by the startup script) is concatenated to a guacamole.properties file located in my local volume. The local one is in a docker volume that I also set to $guacamole_home.  When the properties file is concatenated, if the one I created in my local volume doesn’t have a trailing newline, it puts 2 keys on one line—the script just starts writing to it, even though it exists already. In my case, that happened to be the guacd_hostname that got hosed. I did verify this happens in windows and ubuntu.  So if you create a properties file, it has to have a trailing newline. I worry about properties files that are concatenated like this because the property file could be invalid due to duplicate keys (or the newline issue).  The newline issue could be avoided by writing a newline to the properties file first in the script though.
  3. There may be an issue when trying to create a properties file programmatically when one already exists in the user defined guacamole_home.  Maybe this is a scenario that didn’t exist before deploying via docker.
  4. Tomcat seems to only care about /root/.guacamole as the guacamole_home which is a bit confusing since it’s not using $guacamole_home.  This was actually the source of my issues. I didn’t realize that the environment variables were just used to create a properties file for tomcat. I saw my environment variables, they were correct, and yet tomcat had incorrect information due to the issues above.

 

I may have misinterpreted some of this -- sorry if that’s the case.  I’d be happy to help get to a resolution on these if it’s agreed my scenario wasn’t unique to me and reflects some degree of misinformation in the documentation and/or approach to the properties file overall.

 

Thanks for the replies even though it seemed like I was churning =)

-Ryan

 

 

From: Ryan Underwood [mailto:[hidden email]]
Sent: Friday, October 13, 2017 4:20 PM
To: [hidden email]
Subject: RE: Deploying locally built WAR

 

I can telnet from guacamole to guacd and guacd gives me a protocol error when I do. I literally copied the scripts a buddy is using on Windows and his works fine.
I added logging to the classes throwing the error to provide more details on what was requested.

Sent from my Android phone using TouchDown (www.symantec.com)

-----Original Message-----
From: Mike Jumper [[hidden email]]
Received: Friday, 13 Oct 2017, 4:07PM
To: [hidden email] [[hidden email]]
Subject: Re: Deploying locally built WAR

On Fri, Oct 13, 2017 at 1:00 PM, Ryan Underwood <[hidden email]> wrote:

Thanks Nick – not sure how I missed it in the root.

Now I have the image built from my local repo clone. I’ve modified some of the source to add logging because I still can’t connect to an RDP instance and the only error I get is:

9:50:16.382 [http-nio-8080-exec-9] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: java.net.ConnectException: Connection refused

19:50:16.384 [http-nio-8080-exec-9] DEBUG o.a.g.s.GuacamoleHTTPTunnelServlet - Internal error in HTTP tunnel.

org.apache.guacamole.GuacamoleServerException: java.net.ConnectException: Connection refused

 

 

This looks like guacd is unreachable. Is your Guacamole image configured to connect to a running copy of guacd (in another Docker container or otherwise)?

 

This is the same error I get with the docker hub image too.  However, after adding some logging in the java classes and updating the logback.xml to go to trace, none of my messages show up anywhere.  Any thoughts?

 

What logging did you add?

 

- Mike