Как внести изменения в исходный код плагина Tomcat 7 для Grails 2 - PullRequest
0 голосов
/ 13 марта 2019

Я использую Grails 2.3.11 с плагином Tomcat 7.0.54. Моя версия Java - 1.8.0_181.
Когда я пытаюсь запустить приложение Grails с включенным https, запустите

grails run-app --https

Я получаю следующее исключение:

java.lang.ClassNotFoundException: com.ibm.crypto.tools.KeyTool

Я нашел ответ о том, как исправить неисправный код в плагине Tomcat: https://stackoverflow.com/a/44673672/1037864
Однако я не знаю, как заставить мои изменения примениться. Когда я редактирую код в Tomcatserver.groovy, ничего не происходит. Мой измененный код никогда не выполняется.

Затем я обнаружил, что плагин Tomcat представляет собой jar-файл (находится по адресу "C: \ Dev \ myproject \ webapp \ target \ work \ plugins \ tomcat-7.0.54 \ grails-plugin-tomcat-7.0.54". jar "), и этот файл jar не обновляется при сборке проекта.
В моем BuildConfig.groovy написано:

build ":tomcat:7.0.54"

... поэтому я попытался изменить это на:

compile ":tomcat:7.0.54"

Но когда я пытаюсь запустить проект, я получаю еще одну ошибку:

java.lang.NoClassDefFoundError: org / apache / catalina / startup / Tomcat в java.lang.Class.getDeclaredMethods0 (собственный метод) в java.lang.Class.privateGetDeclaredMethods (Class.java:2701) в java.lang.Class.privateGetMethodRecursive (Class.java:3048) в java.lang.Class.getMethod0 (Class.java:3018) в java.lang.Class.getMethod (Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass (LauncherHelper.java:544) at sun.launcher.LauncherHelper.checkAndLoadMain (LauncherHelper.java:526)
Вызывается: java.lang.ClassNotFoundException: org.apache.catalina.startup.Tomcat на java.net.URLClassLoader.findClass (URLClassLoader.java:381) в java.lang.ClassLoader.loadClass (ClassLoader.java:424) at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:349) в java.lang.ClassLoader.loadClass (ClassLoader.java:357) ... еще 7
Ошибка: произошла ошибка JNI, пожалуйста, проверьте вашу установку и попробуйте снова

Полагаю, мне не хватает некоторых зависимостей.
Как правильно внести изменения в Tomcatserver.groovy, а затем заставить его скомпилировать (и заменить jar-файл)?

1 Ответ

0 голосов
/ 13 марта 2019

Я не знаю, есть ли другой способ, но я заставил его работать:

  • Загрузка исходного кода плагина Tomcat из Github .
  • Внес изменения в исходный код.
  • Ran grails upgrade.
  • Ran grails package-plugin --binary.
  • Скопирован новый JAR-файл(target\grails-plugin-tomcat-7.0.54.jar) в директорию tomcat моего основного проекта (C:\Dev\myproject\webapp\target\work\plugins\tomcat-7.0.54\).
  • . Мой основной проект запущен с grails run-app --https

. Теперь я мог просматривать свой сайт, используяhttps на порт 8443.

...