tomcat - 如何更改 Grails 2 的 Tomcat 7 插件源
问题描述
我正在使用带有 Tomcat 7.0.54 插件的 Grails 2.3.11。我的 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) 在 java.lang.Class.getMethod0(Class.java:3018) 在 java.lang.Class.getMethod(Class.java:1784) 在 sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:第544章)
引起: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 文件)的正确方法是什么?
解决方案
我不知道是否有另一种方法,但我得到了它的工作方式:
- 从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 浏览我的网站。
推荐阅读
- android - 为什么 geofencingClient.addGeofences 总是返回失败
- github - 将更改推送到 github 存储库而无需拉取
- c# - 处理映射器属性中的空值
- nestjs - nestjs:当我使用 GraphQL 时如何抛出 AuthenticationError
- xamarin - Xamarin.Forms 中的大纲文本框
- mysql - 我应该使用哪个 mysql.server 在 MacOS 中重新启动 mysql?
- javascript - 在 mongodb 可用的数组中查找元素
- python - 如何从另一个类访问来自 QLineEdit 小部件的信息?
- c++ - C++:矩阵的转置,使用SINGLE DIMENSION动态数组保存元素
- python - 如何将整数转换为月和年格式