Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Axis + WebStart = непонятная проблема 
V
    Опции темы
Temdegon
Дата 3.8.2010, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: нет
Всего: 9



Пишу приложение, использующее вебсервис с помощью axis. Сервер на php NuSOAP. 
Сгенерил код с помощью wsdl2java, вызываю методы сервиса:
Код

FswsdlLocator locator = new FswsdlLocator();
FswsdlPortType port = locator.getfswsdlPort();
port.getCurrentTime(); // вызов удаленного метода

и все работало замечательно, без малейших намеков на проблемы... до поры, до времени.
Выложил собранный проект на сервер, запускаю его через webstart, получаю
Код

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.net.BindException: Address already in use: connect
 faultActor: 
 faultNode: 
 faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:java.net.BindException: Address already in use: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
    at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:120)
    at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
    at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at com.lumensoftware.fs.service.axis.FswsdlBindingStub.getCurrentTime(FswsdlBindingStub.java:418)
    at com.lumensoftware.fs.service.ServiceAccessor.<init>(ServiceAccessor.java:47)
    at com.lumensoftware.fs.persistence.DataSynchronizer.syncUsers(DataSynchronizer.java:93)
    at com.lumensoftware.fs.FoodServiceMain$1.run(FoodServiceMain.java:33)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    {http://xml.apache.org/axis/}hostname:pashav

java.net.BindException: Address already in use: connect
    at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at com.lumensoftware.fs.service.axis.FswsdlBindingStub.getCurrentTime(FswsdlBindingStub.java:418)
    at com.lumensoftware.fs.service.ServiceAccessor.<init>(ServiceAccessor.java:47)
    at com.lumensoftware.fs.persistence.DataSynchronizer.syncUsers(DataSynchronizer.java:93)
    at com.lumensoftware.fs.FoodServiceMain$1.run(FoodServiceMain.java:33)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.net.BindException: Address already in use: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
    at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:120)
    at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
    at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
    ... 21 more

на вызове удаленного метода port.getCurrentTime() (или любого другого). Сначала долго думает, а потом выдает такой вот ексепшн.
Запускаю без вебстрата - все работает. Запускаю через вебстарт в локальном режиме (codebase file:/C:бла-бла-бла) - все работает. Запускаю с сервера - получаю ошибку.
Гуглил, но не нашел ничего похожего. Такую ошибку инода получали, если часто вызывать метод сервиса в цикле. Но у меня она выскакивает при первом же обращении. Ума не приложу, в какую сторону копать. Подскажите пожалуйста, в чем может быть проблема. 
PM MAIL   Вверх
Temdegon
Дата 3.8.2010, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: нет
Всего: 9



Мммда... проблема становится все более странной. Запустил netstat -b что бы увидеть все открытые соединения, в момент, когда прога подвисает на вызове сервиса, и че-то мне поплохело:
Код


  TCP    pashav:3102            localhost:3104         TIME_WAIT       0
  TCP    pashav:1025            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:1026            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:1027            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:1028            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:1029            192.168.10.100:http    TIME_WAIT       0
  ------------------------------------------------------------------------------------
  -------------- еще много много такого, все порты подряд  -----------
  ------------------------------------------------------------------------------------
  TCP    pashav:4987            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4988            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4989            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4990            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4991            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4992            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4993            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4994            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4995            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4996            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4997            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4998            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:4999            192.168.10.100:http    TIME_WAIT       0
  TCP    pashav:5000            192.168.10.100:http    TIME_WAIT       0

192.168.10.100 - это сервер, на котором лежит это приложение, и на нем же работает вебсервис.
Спарашивается, какого хрена тут происходит? smile 
PM MAIL   Вверх
Temdegon
Дата 3.8.2010, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: нет
Всего: 9



В процессе ковыряния выяснилось, что соединения открывает не axis. Отключил вызовы сервисов, проблема все равно осталась. Ошибка аксиса - это результат того, что локально создано 5000 соединений. Вроде как проблема кроется в JPA и toplink. JPA используется для создания и работы с локальной базой Derby. 
Висит где-то на вызовах
Код

        emf = Persistence.createEntityManagerFactory(puName);
        em = emf.createEntityManager();

откуда взялась проблема, почему ее нет при локальном запуске и как ее решать - для меня пока загадка.
PM MAIL   Вверх
Temdegon
Дата 4.8.2010, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: нет
Всего: 9



Проблема не в Axis и не в JPA http://forum.vingrad.ru/forum/topic-306975.html
Вопрос снимается.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.