我正在将Grails 2.3.11与Tomcat 7.0.54插件一起使用。我的Java版本是1.8.0_181。
当我尝试通过运行
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) 在sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 在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) 在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:349) 在java.lang.ClassLoader.loadClass(ClassLoader.java:357) ...还有7个
错误:发生了JNI错误,请检查您的安装并重试
我想我缺少一些依赖项。
对Tomcatserver.groovy进行更改,然后将其编译(并替换jar文件)的正确方法是什么?
答案 0 :(得分:0)
我不知道是否还有其他方法,但是我通过以下方法使它起作用:
grails upgrade
。grails package-plugin --binary
。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浏览到我的站点。