我在我的java源代码中配置了一个代理:
systemSettings.put("http.proxyHost", "www.proxyserver.com");
systemSettings.put("http.proxyPort", "8080");
systemSettings.put("http.nonProxyHosts", "10.x.y.z");
这里10.x.y.z是我的weblogic服务器的实际IP。 但是每当代码尝试连接到weblogic服务器时,我都收到错误:
引起:java.net.ConnectException:t3://10.x.y.z:7001:Destination 无法访问;嵌套异常是:java.net.ProtocolException: 来自代理的无法识别的响应:'HTTP / 1.0 403 Forbidden';没有 可用路由器到目的地 weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:216)at at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)at at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)at at weblogic.jndi.WLInitialContextFactoryDelegate $ 1.run(WLInitialContextFactoryDelegate.java:345) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146) 在 weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:340)
似乎设置http.nonProxyHosts没有按预期工作。我试图通过互联网找到解决方案,但大多数人都说要删除代理设置。我无法删除代理,因为我的代码尝试连接到某些Internet URL。另请注意,weblogic服务器位于远程计算机上。 能否请你给我一个提示,这里一定有什么问题?
答案 0 :(得分:2)
来自第3条评论:
- 您正在通过System.setProperties()设置nonProxyHosts,它不作为系统属性存在。
醇>
到目前为止我还没有读过所有内容,但似乎system.properties不是设置的便捷方式 nonProxyHosts。
您是否尝试过从命令行设置它?
-Dhttp.nonProxyHosts="*.foo.com|localhost".
答案 1 :(得分:0)
我解决了这个问题。我在设置与weblogic的连接时最初设置了代理。因此,由于一些网络限制,我认为它没有用。在修改后的代码中,我使用相同的3行来设置代理:
System.setProperty("java.net.useSystemProxies", "false");
System.setProperty("http.proxyHost", "www.proxyserver.com");
System.setProperty("http.proxyPort", "8080");
唯一的区别是,我在我需要的确切位置做过。因此,对于使用weblogic代理的初始连接设置,不要使用。我也没有绕过,weblogic服务器URL不使用代理。
@Arcadien:感谢您帮助我的努力。感谢。