一尘不染

如何对Grails 2的Tomcat 7插件源进行更改

tomcat

我正在将Grails 2.3.11与Tomcat 7.0.54插件一起使用。我的Java版本是1.8.0_181。
当我尝试通过运行启动启用https的grails应用程序时

grails run-app --https

我得到以下异常:

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

但是我不知道如何使更改生效。当我在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 at
java.lang.Class.getDeclaredMethods0(本地方法)at
java.lang.Class.privateGetDeclaredMethods(Class.java:2701)at
java.lang.Class.privateGetMethodRecursive
(java.lang.Class.getMethod0(Class.java:3018)处的java.lang.Class.getMethod(Class.java:1784)处的java.lang.Class.getMethod0(Class.java:1784)处的sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:
544)在sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
由以下原因导致:java.lang.ClassNotFoundException:org.apache.catalina.startup.Tomcat
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)at
java.lang.ClassLoader.loadClass(ClassLoader.java:424) .misc.Launcher $
AppClassLoader.loadClass(Launcher.java:349),位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)…还有7个
错误:发生了JNI错误,请检查您的安装,然后重试

我想我缺少一些依赖项。
对Tomcatserver.groovy进行更改然后进行编译(并替换jar文件)的正确方法是什么?


阅读 257

收藏
2020-06-16

共1个答案

一尘不染

我不知道是否还有另一种方法,但是我通过以下方法使它起作用:

  • Github下载Tomcat插件源代码。
  • 做出改变的源代码。
  • grails upgrade
  • 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

现在,我可以在端口8443上使用https浏览到我的站点。

2020-06-16