Я искал во всей сети проблему, которая возникла у меня с агентом lotus notes. Вот мое спасение.
Мне нужно получить Webservice (в Java) от агента в Java тоже. Проблема заключается в том, что агент должен работать на сервере, поскольку файл Jar нельзя установить на каждый компьютер. Теперь в сети клиента люди должны пройти через прокси-сервер для доступа в Интернет, который нуждается в аутентификации. Я знаю, что мы можем настроить сервер Domino на использование прокси, но он уже настроен на LDAP. Итак, единственный вариант, который я нашел, - это использовать системные свойства Java для подключения к прокси и затем получить веб-сервис. Итак, я установил http.proxyHost и http.proxyPort и использую Аутентификатор для логина и пароля. Когда я подключился через HTTP для получения веб-службы, все в порядке или кажется нормальным, поскольку я получаю действительный объект 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. Итак, я попытался установить socksProxyHost и socksProxyPort на один и тот же прокси-сервер, используя порт 1080 вместо HTTP 8080, но продолжаю получать ту же ошибку. В результате моих поисков я понял, что, возможно, Java вообще не использует SOCKS-прокси, даже если эти свойства установлены. Чего я не понимаю, так это того, что я могу сделать это с HTTP-прокси (сначала он не работал, но после настройки свойств), но не с SOCKS Proxy. Просто не хочет. Одна интересная вещь, которая может мне помочь, но я ничего не смог найти по этому поводу, это то, что сначала у меня не было прокси-адреса, поэтому я набрал фиктивный, чтобы начать делать код, пока клиент отвечал на мое письмо , Когда я очищаю свойства socksProxyHost и socksProxyPort, исключение, которое я получаю из Java, - это UnknowHostException, которое указывает на мой фиктивный адрес. НИЧЕГО (а я искал!) Больше не пишется по этому адресу. Даже когда я печатаю свойства, запишите это:
System.getProperties().list(System.out);
Я этого не вижу. Я не думаю, что клиент мог установить фиктивный прокси-адрес точно так же, как я, и, поскольку он работает на сервере, он не имеет никакого отношения к моей конфигурации. Версия Java для заметок - 1.4, а класс java.net.Proxy отсутствует на сервере. Мне было просто интересно, что это что-то приносит вам в голову. Я даже попытался установить все возможные свойства, связанные с прокси (http, https, ftp, socks), и я схожу с ума! Должен быть способ, и я чувствую, что я близко, но я действительно устал проверять кучу вещей, которые не работают!
Ваша помощь очень ценится.