2009-09-21 3 views
1

Я пытаюсь использовать веб-службу SOAP, предоставляемую третьей стороной. У меня возникают проблемы с правильной работой службы в .NET 3.5. Я добавил его как веб-ссылку, и все, кажется, идет хорошо. Проблема в том, что когда я вызываю службу, все, что я получаю, это объект NULL. Я работал с провайдером, и служба работает правильно. Он упомянул:Проблема с веб-службой SOAP

«Мы используем документ Axis2/Literal и поддерживаем SOAP 1 и 2."

Я не совсем уверен, что это значит, поскольку я полуновичок в использовании веб-сервисов. Нужно ли мне менять некоторые параметры конфигурации или что-то в .NET, чтобы эта служба работала правильно?

+0

Это было добавлено как ссылка на службу, а не веб-ссылку – bechbd

ответ

1

Из моего опыта, функциональность взаимодействия веб-сервисов - это не волшебство, на которое оно претендует. Особенно, между .NET и Java.

  • Axis2 является Java веб-сервис «двигатель»
  • Документ/Буквенный является style of writing a WSDL, что приводит к особый внешний вид SOAP
  • SOAP 1 и 2 (вы, наверное, знаете) формат сообщения и конкретные варианты его

все я получаю возвращается объект NULL

Не так уж много, не могли бы вы предоставить дополнительную информацию?

Я бы порекомендовал вам попробовать перехватить обменянные сообщения SOAP (вы можете использовать tcpmon) и проверить, действительны ли они. Вероятно, вы получите исключение, если удаленная служба не сможет обработать ваш запрос, поэтому я предполагаю, что ваш клиент как-то разобрался с ответом. Кроме того, вы можете использовать soapUI для генерации запроса примера, чтобы увидеть, как должен выглядеть действительный запрос.

0

Doc/lit (и, по крайней мере, SOAP 1) должен работать с WCF, но я не уверен, как это связано с предыдущим клиентом веб-службы (pre-.NET 3.0).

ли вы, в Visual Studio, добавьте веб ссылки или служб ссылки? Если вы добавили ссылку web, вы не используете WCF, и это может быть причиной того, что она не работает. Если это так, вы должны удалить веб-ссылку и посмотреть, не помогает ли ссылка на сервис.

0

Похоже, что прокси-сервер, сгенерированный вами (посредством добавления веб-ссылки), не де-сериализует xml в ожидаемый вами тип.

Как wierob предлагает первое, что я хотел бы сделать, это трассировать сообщения, которые вы отправляете в службу, и ответ, который вы получаете, - таким образом вы можете проверить xml, вы можете проверить, что прокси создает подходящее сообщение запроса и видит независимо от того, содержит ли ответ данные, которые не дериссируются в объект, который вы ожидаете

Как и tcpmon, вы можете использовать fiddler (от microsoft), чтобы трассировать трафик, а самый простой - включить трассировку сообщения в WCF to log запрос и ответ на файлы, которые вы могли бы изучить в service trace viewer tool

С такими проблемами взаимодействия я считаю, что лучше всего сначала взглянуть на сообщение «на проводе» - вы можете настроить wsdl так, чтобы прокси-сервер генерировался правильно или вручную обработал прокси-сервер

Если вы публикуете wsdl и ваш прокси-сервер, который может дать нам представление о проблемах

Смежные вопросы