如何更改Grails 2的Tomcat 7插件源代码

问题描述 投票:0回答:1

我正在使用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

我找到了如何修复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 at java.lang.Class.getDeclaredMethods0(Native Method)at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)at java.lang.Class.privateGetMethodRecursive (Class.java:3048)at java.lang.Class.getMethod0(Class.java:3018)at 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 at java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun .misc.Launcher $ AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 7更多 错误:发生JNI错误,请检查您的安装并重试

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

tomcat grails grails-plugin
1个回答
0
投票

我不知道是否有另一种方式,但我得到了它的工作:

  • Github下载Tomcat插件源代码。
  • 使the changes成为源代码。
  • 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开始了我的主要项目

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

© www.soinside.com 2019 - 2024. All rights reserved.