基本上,我试图通过公司代理/防火墙(我无法直接控制)从 Tomcat 服务器进行 SOAP 调用,我尝试将信息添加到 catalina.properties 文件中,如下所示:
http.proxyPort=80
http.proxyHost=www-proxy.company.com
我仍然在 stdout 日志中收到超时信息。我还需要做其他事情吗?如果不需要,还有其他方法可以测试 SOAP 调用吗?
答案1
如果您还没有 setenv.sh(如果运行 Windows,则创建 setenv.bat),请创建一个,并添加以下 java 选项:
JAVA_OPTS="-Dhttp.proxySet=true -Dhttp.proxyHost=<proxy_hostname> -Dhttp.proxyPort=<port_number> -Dhttp.nonProxyHosts=<domain_one>|<domain two> $JAVA_OPTS"
这应该可以很好地工作。
答案2
您可以实施HTTP 代理,https 代理和非 http 代理也雄猫。您需要更新两个文件,即../bin/Catalina.sh
和./conf/cataliana.properties
。。
详细配置和步骤如下:http://w3devops.com/add-http-https-proxy-http-non-proxy-jenkins-via-tomcat-server/
答案3
如果您只需要通过代理进行 soap 调用,则可以使用 jproxyloader。使用此库,您可以通过代理传递 soap 调用,而所有其他调用都不会使用代理。请参阅http://jproxyloader.sourceforge.net/examples/web-application-on-tomcat.html以完成设置。
答案4
为了使 tomcat 在我的 docker 容器内运行,我使用了以下设置:
JAVA_OPTS=-Dhttps.proxyHost=PROXYHOST -Dhttps.proxyPort=PROXYPORT -DproxySet=true -DproxyHost=PROXYHOST -DproxyPort=PROXYPORT