Параллелизм при вызове клиентов веб-сервиса - PullRequest
2 голосов
/ 21 июля 2011

У меня есть веб-приложение, которое использует некоторые клиенты веб-сервиса для получения отображаемых данных.

Когда нагрузка не очень высокая, приложение работает нормально.

К сожалению, когда нагрузка больше, серверы перегружаются из-за следующие застрявшие темы ...

Есть идеи, что может быть причиной?

]", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
    com.sun.org.apache.xml.internal.resolver.Catalog.parseCatalog(Catalog.java:660)
    com.sun.xml.ws.util.xml.XmlUtil.createDefaultCatalogResolver(XmlUtil.java:251)
    com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:265)
    com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:228)
    weblogic.wsee.jaxws.spi.WLSServiceDelegate.<init>(WLSServiceDelegate.java:52)
    weblogic.wsee.jaxws.spi.WLSProvider$ServiceDelegate.<init>(WLSProvider.java:371)
    weblogic.wsee.jaxws.spi.WLSProvider.createServiceDelegate(WLSProvider.java:79)
    weblogic.wsee.jaxws.spi.WLSProvider.createServiceDelegate(WLSProvider.java:62)
    javax.xml.ws.Service.<init>(Service.java:56)

1 Ответ

3 голосов
/ 21 июля 2011

Похоже, что сервисный клиент прерывает синтаксический анализ WSDL.

Убедитесь, что WSDL и все зависимости, которые он импортирует, загружаются локально и не выбираются по сети с хоста службы. Вы можете указать путь к локальному WSDL через конструктор , который принимает URL ; вам все равно придется проверять свой WSDL, чтобы убедиться, что любые импортируемые им схемы ссылаются на относительные URI.

Также убедитесь, что вы повторно используете экземпляры Service, сделав их областью применения. Поскольку анализ WSDL стоит дорого, вы хотите делать это как можно реже. Убедитесь, что ваша реализация JAX-WS Service является поточно-ориентированной (я не знаю о реализации, где ее нет, но стоит проверить). порты , создаваемые службами, различаются - в некоторых реализациях они безопасны для потоков; в некоторых это не так.

...