Java http.proxyHost系统属性设置为null
请帮我找出下列行为的原因 我有两个应用程序在Tomcat容器中运行:我的应用程序和Hudson(v2.2.0)。Tomcat以Java http.proxyHost系统属性设置为null,java,maven,proxy,hudson,system-properties,Java,Maven,Proxy,Hudson,System Properties,请帮我找出下列行为的原因 我有两个应用程序在Tomcat容器中运行:我的应用程序和Hudson(v2.2.0)。Tomcat以-Dhttp.proxyHost=proxy-Dhttp.proxyPost=8080选项启动,因此我的应用程序使用代理访问外部Web服务 我检测到运行maven构建的Hudson有以下非常奇怪的行为:在某个时间点(maven启动之前),http.proxyHost系统属性设置为null。也许我的应用程序(部署到同一个Tomcat上)崩溃了,因为它无法打开连接,我认为这两
-Dhttp.proxyHost=proxy-Dhttp.proxyPost=8080
选项启动,因此我的应用程序使用代理访问外部Web服务
我检测到运行maven构建的Hudson有以下非常奇怪的行为:在某个时间点(maven启动之前),http.proxyHost系统属性设置为null。也许我的应用程序(部署到同一个Tomcat上)崩溃了,因为它无法打开连接,我认为这两者是相对的
我已经安装了自定义的代理选择器,以便在重置代理时报告。它看起来像是在maven开始依赖项解析之前重置了http.proxyHost:
15.12 10:13:35 DEBUG [org.CustomProxySelector] Using proxy DIRECT for URL http://repo.internal/nexus/content/groups/development/org/parent/1.0.0-SNAPSHOT/maven-metadata.xml.sha1. Proxy settings: http.proxyHost=null, ftp.proxyHost=proxy
java.lang.Exception
at org.CustomProxySelector.select(CustomProxySelector.java:42)
at org.CustomProxySelector.select(CustomProxySelector.java:38)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:906)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
at org.apache.maven.wagon.providers.http.LightweightHttpWagon.fillInputData(LightweightHttpWagon.java:115)
at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116)
at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88)
at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.verifyChecksum(WagonRepositoryConnector.java:708)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:625)
at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
15.12 10:13:35 INFO [hudson.maven.MavenModuleSetBuild] using maven 3 3.0.3
15.12 10:16:10 INFO [hudson.model.Run] common-ops #87 main build action completed: SUCCESS
在实际发生的事情上,我可能是错的:Maven应该在单独的JVM中运行,但是我在项目中安装到JVM静态变量的CustomProxySelector如何从Maven JVM中可见?如果“父”JVM和“分叉”JVM共享同一个根类加载器,那么它们可能也共享系统属性。这意味着,如果Maven build(即使是临时的)将http.proxyHost设置为null,并且我的进程此时打开URL,它将失败
我的问题是:如果上述行为是哈德逊/马文的一个错误?解决方法是什么(除了运行2台Tomcat服务器的琐碎工作)