2014-09-05 27 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

相關問題