使用 WebLogic 11g 实现代理

Kas*_*s81 2 java weblogic-10.x

我正在使用 WebLogic 服务器 10.x (11g) 来部署和服务我的应用程序。但是,我们的生产环境由代理服务器组成,如果我尝试访问某些站点,它会导致麻烦。
因此,我很想知道是否有任何可行的解决方案可以通过在我们的网站上配置代理服务器详细信息来解决此问题

  1. WebLogic环境
  2. 应用程序级别 - 我正在使用 Java 来开发我的应用程序


提前致谢。

Avi*_*iro 5

有两种可能的方法可以实现这一点。

  1. 配置 WebLogic 环境
  2. 以编程方式

让我们看看这些。
应用程序服务器中的代理配置让我们以WebLogic应用程序服务器来说明所需的配置

配置 WebLogic Server 以启用代理

1.使用WebLogic管理控制台
  1. 登录管理控制台
  2. 转到域 -> 环境 -> 服务器 -> 管理服务器 -> 配置 -> 服务器启动
  3. 在“参数”部分中输入以下内容并保存。 -jvmargs -Dhttp.proxySet=true -Dhttp.proxyHost=server_url -Dhttp.proxyPort=port
  4. 重新启动 WebLogic 服务器

2.使用WebLogic启动脚本
  1. 打开 WebLogic 域配置脚本
  2. 搜索以下短语“JAVA_OPTIONS”
  3. 之后输入以下详细信息。 set JAVA_OPTIONS=%JAVA_OPTIONS% -Dhttp.proxyHost=server_url -Dhttp.proxyPort=port
  4. 保存脚本并启动WebLogic服务器

以编程方式使用

有几种可用的实现,让我们讨论一些我认为有用的方法。

使用值的代理配置

正如下面重点介绍的,您可以使用应用程序中以编程方式定义的值来配置代理。

System.setProperty("http.proxyHost", "proxy_url");
System.setProperty("http.proxyPort", "port");
Run Code Online (Sandbox Code Playgroud) 使用用户凭据进行配置

有时您可能需要提供准确的凭据才能通过代理服务器。这是一个可以帮助您实现这一目标的实现。

import java.net.Authenticator;
import java.net.PasswordAuthentication;


public class MyAuthenticator extends Authenticator {
    private String username;
    private String password;

    public MyAuthenticator(String username, String password){
        this.username = username;
        this.password = password;
    }

    public PasswordAuthentication getPasswordAuthentication () {
        return new PasswordAuthentication (username, password.toCharArray());
    }
}
Run Code Online (Sandbox Code Playgroud)

定义的 Authenticator 类可用于将凭据注入代理配置,如下所示。

System.setProperty("http.proxyHost", "proxy_url");
System.setProperty("http.proxyPort", "port");
Authenticator.setDefault (new MyAuthenticator("domain_name\\user_name","password"));
Run Code Online (Sandbox Code Playgroud)

无论哪种情况,您都需要在程序级别实现用法,如下所示。否则,代理通信将不会成功并最终抛出异常。

final URL url = new URL(null, urlString, new sun.net.www.protocol.http.Handler());
Run Code Online (Sandbox Code Playgroud)