Запросы метаданных HTTP с WSIT / JAX-WS - PullRequest
0 голосов
/ 26 ноября 2010

У меня проблема с запуском клиента Java (с использованием Metro) против .NET STS и защищенного веб-сервиса.Однако, когда я запускаю свой клиент на основе .NET, он всегда работает.

Как вы, вероятно, уже знаете, когда клиент JAX-WS запускается, он запрашивает метаданные от службы во время выполнения (даже если он уже имеетпобежал wsimport во время разработки).Однако, похоже, что этот запрос метаданных во время выполнения - вот где моя проблема.

Проблема, с которой я сталкиваюсь, заключается в том, что во время запросов метаданных во время выполнения некоторые WSDL, экспортируемые моей службой WCF, приводили к тому, что клиент Java просто«зависать» во время мекс-запросов.Когда он зависает, он даже не доходит до выдачи запроса RST.

Например, я могу добраться до места, где у меня есть 9 атрибутов [OperationContract], и это работает.Но когда я добавляю 10-й сервисный метод, он не работает.Однако, если я удалю один из 9, то это работает.Я знаю, что нет проблемы с конкретным методом, потому что я могу смешивать и сопоставлять, и тот же шаблон имеет место.

Я не могу вывести шаблон или причину, по которой некоторые WSDL работают, а некоторые нетт.Я сильно сомневаюсь, что количество методов обслуживания ограничено.Однако может ли это быть проблемой с «общей сложностью» экспортируемого WSDL?

У кого-нибудь есть идеи?Кто-нибудь сталкивался с этой проблемой раньше?

Если вам нужна дополнительная информация, я с удовольствием опубликую ее.Я просто пытаюсь сохранить начальный пост управляемой длины.

Я также добавлю, что я использую STS и защищенное веб-обслуживание в .NET 4, и они основаны на WIF (так что мне не нужно беспокоиться о настройках безопасности).Мой клиент .NET также является .NET 4. На стороне Java я использую Netbeans 6.9.1 с Metro 2.1 под управлением Glassfish 3. Я подтвердил, что у меня возникает та же проблема, возникающая в Metro 2.0.

Ответы [ 2 ]

1 голос
/ 13 января 2011
0 голосов
/ 26 ноября 2010

Следуя приведенному примеру, есть вероятность, что предел MaxMessageReceivedSize или MaxStringContentLength достигнут. Вы пытались увеличить значения MaxMessageReceivedSize и MaxStringContentLength для привязки? Вы можете попробовать включить трассировку WCF, при достижении любого такого лимита будет записано предупреждение.

...