Я столкнулся с той же проблемой, но в моей настройке используется docker. В моем случае есть расхождения между фактическим кодом и документацией. Я объясню, как найти причину root, поскольку она похожа.
- Включить отладку Logback
Поскольку вы устанавливаете вручную (без использования контейнера docker) . Скорее всего, вы точно знали, где находится GUACAMOLE_HOME
. Напоминаю, что по умолчанию он находится в /etc/guacamole
, но если у вас есть /home/$USER/.guacamole
, он будет использоваться вместо него.
Добавьте logback.xml
, как описано здесь: https://guacamole.apache.org/doc/gug/configuring-guacamole.html в вашем GUACAMOLE_HOME
директории
См. Вывод вашей каталины
Новые настройки отладки будут выводить все сообщения отладки. Если нет сообщения [DEBUG], значит, вы поместили logback.xml
в неправильное место.
После того, как у вас есть выходной поток DEBUG, посмотрите важные выходные данные, такие как GUACAMOLE_HOME
, который в настоящее время используется, AuthBinding, который в настоящее время б / у, et c. Это когда запускается catalina.
Например, это отрывок из моего журнала:
19:23:08.933 [localhost-startStop-1] DEBUG o.a.g.extension.ExtensionModule - Loading extension: "guacamole-auth-jdbc-postgresql-1.2.0.jar"
19:23:08.973 [localhost-startStop-1] DEBUG o.a.g.extension.ExtensionModule - [0] Binding AuthenticationProvider "org.apache.guacamole.auth.postgresql.PostgreSQLAuthenticationProvider".
19:23:08.980 [localhost-startStop-1] INFO o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole".
19:23:10.150 [localhost-startStop-1] DEBUG o.a.g.extension.ExtensionModule - [1] Binding AuthenticationProvider "org.apache.guacamole.auth.postgresql.PostgreSQLSharedAuthenticationProvider".
19:23:10.207 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "es"
19:23:10.213 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "ru"
19:23:10.216 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "de"
19:23:10.222 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "fr"
19:23:10.227 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "ja"
19:23:10.233 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "en"
19:23:10.234 [localhost-startStop-1] INFO o.a.g.extension.ExtensionModule - Extension "PostgreSQL Authentication" loaded.
Обратите внимание, что сначала должна быть загружена привязка postgresql auth.
Если такого вывода нет, значит Tomcat даже не нашел ваши настройки. Если он нашел настройки, но не смог загрузить привязки, то Tomcat не смог найти вашу привязку.
Это пример журнала, если такие вещи происходят (запуск catalina работает нормально, но вход через панель управления guacamole будет извергать эта ошибка).
### Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: org.postgresql.Driver
### The error may exist in org/apache/guacamole/auth/jdbc/user/UserMapper.xml
### The error may involve org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
### The error occurred while executing a query
### Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: org.postgresql.Driver
19:44:44.511 [http-nio-8080-exec-12] DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected error in REST endpoint.
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: org.postgresql.Driver
### The error may exist in org/apache/guacamole/auth/jdbc/user/UserMapper.xml
### The error may involve org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
### The error occurred while executing a query
### Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: org.postgresql.Driver
Наконец, если он нашел ваши настройки, но не нашел привязку guacamole-auth- postgresql, он выдаст этот журнал:
19:47:49.654 [http-nio-8080-exec-15] DEBUG o.a.g.extension.ExtensionModule - [0] Binding AuthenticationProvider "org.apache.guacamole.auth.file.FileAuthenticationProvider".
Уведомление что теперь привязка FileAuth загружается первой (она не обнаруживает привязку postgres jdb c).
Основываясь на информации журнала, систематически пытайтесь найти root причину
Это может быть просто неправильно GUACAMOLE_HOME
. Например, вы отредактировали /etc/guacamole/guacamole.properties
, но Tomcat фактически загрузил /home/$USER/.guacamole/guacamole.properties
. Или, может быть, ваша структура каталогов неверна.
Это мое дерево каталогов, если вы хотите сравнить:
root@guacamole-7988d57c8d-nwfk7:~/.guacamole# tree .
.
├── extensions
│ ├── guacamole-auth-jdbc-postgresql-1.2.0.jar -> /opt/guacamole/postgresql/guacamole-auth-jdbc-postgresql-1.2.0.jar
│ └── lost+found
├── guacamole.properties
├── lib
│ └── postgresql-9.4-1201.jdbc41.jar -> /opt/guacamole/postgresql/postgresql-9.4-1201.jdbc41.jar
└── logback.xml
3 directories, 4 files
Проверьте, действительно ли вы можете получить доступ к базе данных
из машины, на которой работает гуакамоле (кота). Убедитесь, что вы можете получить доступ к своей базе данных с указанными учетными данными. Если вы используете postgres, попробуйте получить к нему доступ через psql. Просто чтобы убедиться, что у вас есть соответствующие права доступа к базе данных
Убедитесь, что драйвер jdb c, который вы используете, соответствует правильной Java версии.
Вероятно, документы были достаточно подчеркнуты. Но, может быть, ты сможешь проверить еще раз.