如何在运行spring-boot fat war作为tomcat服务器时指定要使用的http代理?
我尝试过以下无效的工作。
java -jar my-application.war --http.proxyHost=localhost --http.proxyPort=3128 --https.proxyHost=localhost --https.proxyPort=3128
和
java -jar my-application.war -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=3128
答案 0 :(得分:8)
我发现我需要-Dhttps.proxySet = true才能实际使用代理配置。
答案 1 :(得分:2)
将JVM选项放在-jar
之前。这应该有效:
java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=3128 -jar my-application.war
<强>解释强>
根据java command-line documentation,命令的语法是:
java [ options ] -jar file.jar [ arguments ]
arguments
是您args
中收到的main(String[] args)
。因此,以某种方式使用它们完全是您的责任。如果你使用SpringApplication.run(MyApplication.class, args);
将它们转发到春季,那么你需要找到一个文档,说明spring如何在args
方法中使用run
。
然而,options
不会发送到您的应用。他们的一个用途是使用system properties
设置java调用-Dproperty=value
的内容。根据{{3}},设置(例如http.proxyHost
属性会使JVM代理通过该主机发出所有http请求。
答案 2 :(得分:0)
您可以在application.properties中配置REMOTE DEVTOOLS(RemoteDevToolsProperties)的所有属性。
spring.devtools.remote.context-path= # Context path used to handle the remote connection.
spring.devtools.remote.proxy.host= # The host of the proxy to use to connect to the remote application.
spring.devtools.remote.proxy.port= # The port of the proxy to use to connect to the remote application.
spring.devtools.remote.restart.enabled=true # Whether to enable remote restart.
spring.devtools.remote.secret= # A shared secret required to establish a connection (required to enable remote support).
spring.devtools.remote.secret-header-name=X-AUTH-TOKEN # HTTP header used to transfer the shared secret.
答案 3 :(得分:0)
需要添加以验证代理服务器
-Dhttp.proxyUser=**username**
-Dhttp.proxyPassword=**password**