如何为IBM WebSphere 8.5上的单个应用配置代理
给WebSphere 8.5单个应用配置代理的方法
刚好在WebSphere 8.5上折腾过单个应用的代理配置,给你分享几种靠谱的方案,针对你提到的employee-soap-services-0_1_0_war应用:
方案一:应用级JVM自定义属性(推荐,无代码改动)
这是最官方的方式,只给目标应用单独设置代理,不会影响服务器上的其他应用:
- 登录WebSphere管理控制台
- 导航到
Applications > Application Types > WebSphere enterprise applications - 在应用列表里找到
employee-soap-services-0_1_0_war,点击进入应用配置页 - 左侧菜单找到
Java and Process Management > Process definition - 点击
Java Virtual Machine选项 - 滚动到页面底部的
Custom properties,点击New按钮 - 依次添加以下属性:
- 名称:
http.proxyHost,值填你的代理服务器地址(比如proxy.yourcompany.com) - 名称:
http.proxyPort,值填代理端口(比如8080) - (可选)如果有内部地址不需要走代理,添加
http.nonProxyHosts,值用竖线分隔,比如*.yourcompany.com|localhost|127.0.0.1
- 名称:
- 点击保存,然后重启这个应用(不用重启整个服务器)
方案二:SOAP客户端代码层面配置(适合精准控制)
如果你的应用是SOAP服务调用方,还可以在代码里直接给SOAP客户端设置代理,只对这个服务的调用生效:
import java.net.InetSocketAddress; import java.net.Proxy; import javax.xml.ws.BindingProvider; import com.yourcompany.EmployeeServicePortType; // 替换成你的SOAP端口类 // 获取SOAP客户端实例 EmployeeServicePortType soapPort = new EmployeeService().getEmployeeServicePort(); BindingProvider bindingProvider = (BindingProvider) soapPort; // 创建代理对象 Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy-host", 8080)); // 设置到SOAP请求上下文 bindingProvider.getRequestContext().put("com.sun.xml.ws.transport.http.client.proxy", proxy);
这种方式更灵活,不会影响应用里其他HTTP请求的代理设置。
注意事项
- 应用级JVM属性会覆盖服务器级的同名属性,优先级更高
- 配置完成后必须重启目标应用,新的属性才会生效
- 如果是HTTPS代理,还需要添加
https.proxyHost和https.proxyPort属性,配置方式和HTTP的一样
内容的提问来源于stack exchange,提问作者Sks
相关产品推荐
相关产品推荐

