1

我正在使用以下简单的 build.gradle 项目模板:

buildscript {
  repositories {
   maven {
          url repoUrlPublic
      }
  }
  dependencies {
    classpath "org.gretty:gretty:3.0.2"
  }
}

apply plugin: "org.gretty"

apply plugin: 'war'

description = "Servlet Template"
group = "com.grp"
version = "0.0.1"
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
repoUrlPublic = "http://..."

//gradlew run
ext {
   javaMainClass = "com.pckg.TemplateJAR"
}

war {
    baseName 'template'
}

gretty {
    debugPort = 5005      // default
    debugSuspend = true   // default

    httpPort = 8585

    servletContainer = 'jetty9.3'
}

repositories {
      // project nexus server repository
      maven {
          url repoUrlPublic
      }
}

dependencies {
  implementation 'org.slf4j:slf4j-api:1.7.25'
  implementation 'ch.qos.logback:logback-classic:1.2.3'
  implementation 'ch.qos.logback:logback-core:1.2.3'
  compileOnly 'javax.servlet:javax.servlet-api:3.0.1'
}

并使用指定的版本产生以下问题:

gradlew appRunDebug 拾取 JAVA_TOOL_OPTIONS:-Duser.language=en 在地址监听传输 dt_socket:5005 10:45:40.594 [main] DEBUG org.akhikhl.gretty.ServiceProtocol - ServiceProtocol.send(61607, init 61611) 线程中的异常“ main" java.net.ConnectException:连接超时:在 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl) 的 java.net.DualStackPlainSocketImpl.connect0(Native Method) 连接.java:350) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)在 java.net。SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java:589) 在 java.net.Socket.connect(Socket.java:538) 在 java.net.Socket.(Socket. java:434) 在 java.net.Socket.(Socket.java:244) 在 org.akhikhl.gretty.ServiceProtocol$Writer.write(ServiceProtocol.groovy:76) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus .groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43) 在 org.codehaus.groovy.runtime.callsite。PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrap.invoke(PogoMetaMethodSite.java:179) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:70) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray. java:47) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127) 在 org.akhikhl .gretty.Runner.run(Runner.groovy:118) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43) 在 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:190) 在 org .codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:70) 在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) 在 org.codehaus.groovy.runtime.callsite .AbstractCallSite.call(AbstractCallSite.java:115) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:119) at org.akhikhl.gretty.Runner.main(Runner.groovy:53) up JAVA_TOOL_OPTIONS:-Duser.language=en 线程“Thread-65”org.gradle.process.internal 中的异常。ExecException: Process 'command 'C:\Java\jdk1.8.0_191\bin\java.exe'' 在 org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java: 396)在 org.gradle.process.internal.DefaultExecActionFactory.javaexec(DefaultExecActionFactory.java:129)在 org.gradle.api.internal.project 的.DefaultProject.javaexec(DefaultProject.java:1105) 在 org.gradle.api.internal.project.DefaultProject.javaexec(DefaultProject.java:1100) 在 org.gradle.api.Project$javaexec$6.call(Unknown Source) 在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) 在 org.codehaus.groovy.runtime。callsite.AbstractCallSite.call(AbstractCallSite.java:115) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127) at org.akhikhl.gretty.DefaultLauncher.javaExec(DefaultLauncher.groovy:100)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method .invoke(Method.java:498) 在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104) 在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:326) 在 org.codehaus.groovy。 org.codehaus 的 runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)。org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite 的 groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)。 callCurrent(AbstractCallSite.java:156) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:168) at org.akhikhl.gretty.LauncherBase$_launchThread_closure5.doCall(LauncherBase.groovy:208) at org .akhikhl.gretty.LauncherBase$_launchThread_closure5.doCall(LauncherBase.groovy) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104) 在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java :326) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041) at groovy.lang.Closure.call(Closure. java:411) 在 groovy.lang.Closure.call(Closure.java:405) 在 groovy.lang.Closure.run(Closure.java:492) 在 java.lang.Thread.run(Thread.java:748)326)在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) 在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041) 在 groovy.lang.Closure.call(Closure.java :411) 在 groovy.lang.Closure.call(Closure.java:405) 在 groovy.lang.Closure.run(Closure.java:492) 在 java.lang.Thread.run(Thread.java:748)326)在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) 在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041) 在 groovy.lang.Closure.call(Closure.java :411) 在 groovy.lang.Closure.call(Closure.java:405) 在 groovy.lang.Closure.run(Closure.java:492) 在 java.lang.Thread.run(Thread.java:748)

设置 gretty 插件版本 3.0.1 后,脚本可以正常工作。知道为什么脚本不兼容吗?

4

1 回答 1

0

我得到:

java.net.ConnectException: Connection refused: connect 
at org.akhikhl.gretty.ServiceProtocol$Writer.write(ServiceProtocol.groovy:76) 
...

从 IntelliJ IDEA 运行时。然后我从 IDEA 的“终端”运行它,它工作了。然后我再次从 IDEA 运行它......它工作了:-\

不停地问为什么......我只能推测 G​​retty 正在尝试编写一些文件,这是不允许的,当它在 IDEA 下运行时(可能是与 SSL 证书相关的文件),但是一旦这些文件被写入,它能够很好地阅读它们......尽管反对这一点的论点是问题的“阻塞”性质......“安全例外”会更合适。

于 2021-01-17T04:49:57.007 回答