2014-09-05 36 views
2

我们在自动化Maven构建过程中遇到了一些麻烦。这个构建会不时被install4j的签名过程破坏。有时候它会很好运作,有时我们会得到以下例外:签名过程中的SocketTimeoutException

... 
[15:51:29] :   [myapp] [INFO]  Compiling launcher 'Standalone updater': 
[15:51:29] :   [myapp] [INFO]  replaced variable 'launcher.name' with 'MyApp' in string '${compiler:launcher.name} Update' 
[15:51:29] :   [myapp] [INFO]  using icon file D:\BuildAgent7\work\1c0ed506bc73bcb4\target\install4j\resource\updater.ico 
[15:51:29] :   [myapp] [INFO]  replaced variable 'sys.fullName' with 'My Application' in string 'Starts the ${compiler:sys.fullName} update' 
[15:51:29] :   [myapp] [INFO]  Creating GUI mode application. 
[15:51:29] :   [myapp] [INFO]  Signing executable 
[15:51:37] :   [myapp] [INFO] Creating media file: 
[15:51:37] :   [myapp] [INFO]  replaced variable 'launcher.name' with 'MyApp' in string '${compiler:launcher.name} Uninstall' 
[15:51:37] :   [myapp] [INFO]  output file is D:\BuildAgent7\temp\buildTmp\install4j374202026546155444_dir\set1\launcheruninstaller\app.ico 
[15:51:37] :   [myapp] [INFO]  replaced variable 'sys.fullName' with 'My Application' in string 'Remove the ${compiler:sys.fullName} installation' 
[15:51:37] :   [myapp] [INFO]  Creating GUI mode application. 
[15:51:37] :   [myapp] [INFO]  Signing executable 
[15:51:47] :   [myapp] [INFO] com.a.a.d: error during counter signing 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.a(ejt:137) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.a(ejt:94) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.g.a(ejt:68) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.g.c.a(ejt:189) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.g.c.a(ejt:82) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.g.g.a(ejt:60) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.b.d(ejt:392) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.b.c(ejt:360) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.b.a(ejt:135) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.h.a(ejt:440) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.h.a(ejt:214) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.h.d(ejt:106) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.Install4JApplication.c(ejt:436) 
[15:51:47] :   [myapp] [INFO]  at com.a.a.a(ejt:286) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.Install4JApplication.main(ejt:93) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.lang.reflect.Method.invoke(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.exe4j.runtime.LauncherEngine.launch(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.exe4j.runtime.WinLauncher.main(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.runtime.launcher.WinLauncher.main(Unknown Source) 
[15:51:47] :   [myapp] [INFO] Caused by: java.io.IOException: Read timed out 
[15:51:47] :   [myapp] [INFO] You can set a different timestamp signing service by setting the VM parameter -Dinstall4j.timestampUrl=http://... in bin/install4j.vmoptions 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.b(ejt:174) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.a(ejt:110) 
[15:51:47] :   [myapp] [INFO]  ... 21 more 
[15:51:47] :   [myapp] [INFO] Caused by: java.net.SocketTimeoutException: Read timed out 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.lang.reflect.Constructor.newInstance(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.security.AccessController.doPrivileged(Native Method) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.runtime.installer.helper.content.Downloader.connect(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.b(ejt:156) 
[15:51:47] :   [myapp] [INFO]  ... 22 more 
[15:51:47] :   [myapp] [INFO] Caused by: java.net.SocketTimeoutException: Read timed out 
[15:51:47] :   [myapp] [INFO]  at java.net.SocketInputStream.socketRead0(Native Method) 
[15:51:47] :   [myapp] [INFO]  at java.net.SocketInputStream.read(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.net.SocketInputStream.read(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.io.BufferedInputStream.fill(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.io.BufferedInputStream.read1(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.io.BufferedInputStream.read(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.net.URLConnection.getHeaderFieldLong(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.net.URLConnection.getContentLengthLong(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.net.URLConnection.getContentLength(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  ... 24 more 
[15:51:47] :   [myapp] [INFO] install4j: compilation failed. Reason: error during counter signing 
[15:51:47] :   [myapp] [Maven Watcher] 
[15:51:47]E:   [myapp] Failed to execute goal org.sonatype.install4j:install4j-maven-plugin:1.0.5:compile (build-installer) on project myapp: null returned: 1 
... 

这是稳定我们连续构建的问题。 SocketTimeoutException使我得出了与verisign服务器缺少连接的结论。但是对于更新程序,在签署执行期间已经有一个连接。现在我不确定这是否可能是我们的构建环境或install4j本身的签名过程的问题。什么值被设置为连接超时的默认值?是否可以重写此值?

对于签署,我们使用pfx -file和install4j与版本5.1.12。

回答

2

默认情况下,读取超时设置为10000毫秒。您可以通过将

-Dinstall4j.readTimeout=20000 

添加到install4j安装中的文件bin/install4j.vmoptions来增加它。

仅供参考,连接超时类似的虚拟机参数install4j.connectTimeout也有默认值10000毫秒。


更新(二零一四年十一月二十零日):

由于install4j 6.0,失败计数器签名与3秒的暂停重试10次。最大重试次数可以通过VM参数增加

-Dinstall4j.counterSignRetry=20 
+0

好的,我会试试这个。是否也可以在命令行设置VM参数,而不是固定到vmoption-file? – Hardie82 2014-09-05 11:59:10

+0

是的,使用-J-Dinstall4j.readTimeout = 20000 – 2014-09-05 13:06:35

+2

install4j maven插件现在已得到增强,以显示允许您设置此参数和其他VM参数的参数。拉请求是https://github.com/sonatype/install4j-support,它包含更多的文档。具有这些更改的新发行版本是1.0.8。 – 2015-02-13 17:07:38

相关问题