0


我一直在整个网络上搜索我在使用 lotus notes 代理时遇到的问题。这是我的请求。
我也需要从 Java 中的代理中检索 Web 服务(Java 中)。问题是代理必须在服务器上运行,因为 Jar 文件不能安装在每台计算机上。现在,在客户端的网络上,人们必须通过代理才能访问网络,这需要身份验证。我知道我们可以将 Domino 服务器设置为使用代理,但它已经设置为 LDAP。因此,我发现的唯一选择是使用 Java 系统属性连接到代理,然后获取 Web 服务。因此,我设置了 http.proxyHost 和 http.proxyPort,并使用 Authenticator 作为登录名和密码。当我通过 HTTP 连接以检索 Web 服务时,一切都很好,或者看起来很好,因为我得到了一个有效的 Java 对象。现在,一旦我得到那个实例,我需要初始化一个会话。当我启动该方法时,我得到了这个:

2011-06-28 13:46:50   Agent  error: WebServiceEngineFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode: 
faultString: java.net.SocketException: Operation timed out: connect:could be due to invalid address
faultActor: 
faultNode: 
faultDetail: 
2011-06-28 13:46:50   Agent  error: java.net.SocketException: Operation timed out: connect:could be due to invalid address
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.AxisFault.makeFault(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.transport.http.HTTPSender.invoke(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.strategies.InvocationStrategy.visit(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.SimpleChain.doVisiting(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.SimpleChain.invoke(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.client.AxisClient.invoke(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.client.Call.invokeEngine(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.client.Call.invoke(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.client.Call.invoke(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.client.Call.invoke(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.axis.client.Call.invoke(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at com.casebank.spotlight.webservice.TroubleShootSoap11BindingStub.initiateSession(TroubleShootSoap11BindingStub.java:334)
2011-06-28 13:46:50   Agent  error:     at JProxyManager.getResultFromAddress(JProxyManager.java:118)
2011-06-28 13:46:50   Agent  error:     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2011-06-28 13:46:50   Agent  error:     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
2011-06-28 13:46:50   Agent  error:     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
2011-06-28 13:46:50   Agent  error:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
2011-06-28 13:46:50   Agent  error:     at java.lang.reflect.Method.invoke(Method.java:391)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.JavaConnectInvoker.invoke(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
2011-06-28 13:46:50   Agent  error:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:62)
2011-06-28 13:46:50   Agent  error:     at java.lang.reflect.Method.invoke(Method.java:391)
2011-06-28 13:46:50   Agent  error:     at lotus.domino.JavaConnectLoader.invoke(Unknown Source)

这告诉我 Java 正在尝试使用不是 HTTP 协议的套接字进行连接。所以,我尝试使用端口 1080 而不是 HTTP 8080 将 socksProxyHost 和 socksProxyPort 设置为同一个代理,但我一直收到同样的错误。我的搜索让我意识到,即使设置了这些属性,Java 也可能根本不使用 SOCKS 代理。我不明白的是,我可以使用 HTTP 代理(起初不起作用,但在设置属性后,它有)但不能使用 SOCKS 代理。它只是不想。一件有趣的事情可能对我有所帮助,但我找不到任何相关信息,那就是起初我没有代理地址,所以我输入了一个虚拟地址,只是为了在客户回复我的电子邮件时开始编写代码. 当我清除属性 socksProxyHost 和 socksProxyPort 时,我从 Java 得到的异常是 UnknowHostException,它指向我的虚拟地址。NOWHERE(我搜索了!)不再写那个地址了。即使我打印属性时也使用这个:

System.getProperties().list(System.out);

我没看到。我不认为客户端可能像我一样设置了虚拟代理地址,并且由于它在服务器上运行,它与我的配置无关。notes 上的 Java 版本是 1.4,并且 java.net.Proxy 类不在服务器上。我只是想知道它会让你想起什么。我什至尝试设置与代理相关的所有可能属性(http、https、ftp、socks),我快疯了!一定有办法,我觉得我很接近,但我真的厌倦了测试一堆不起作用的东西!

非常感谢您的帮助。

4

1 回答 1

0

请注意,Java 使用套接字与 http 代理通信。如果这是试图直接到达服务器而不是通过 http 代理,那将是完全有意义的。

我建议您找到包含此代码的 jar,并通过反编译器运行它以查看代码实际执行的操作以及触发此异常的位置。看起来它没有包装实际的异常,而是创建了一个丢弃实际堆栈跟踪的新异常。

于 2011-06-28T19:28:01.367 回答