|
1c web service Soap Fault - вызвать исключение | ☑ | ||
|---|---|---|---|---|
|
0
pylyptiy
27.04.22
✎
13:11
|
Каким образом можно вызвать свое самописное исключение в методе вебсервиса, и пометить метод так что он может его выбрасывать, чтобы в итоге в wsdl получить соответствующий блок для данного метода? к примеру как здесь:
<wsdl:operation name="changeMassageStatusNotification"> <soap:operation soapAction=""/> <wsdl:input name="changeMassageStatusNotificationRequest"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="changeMassageStatusNotificationResponse"> <soap:body use="literal"/> </wsdl:output> <wsdl:fault name="changeMassageStatusNotificationFault"> <soap:fault name="changeMassageStatusNotificationFault" use="literal"/> </wsdl:fault> </wsdl:operation> т.е. для метода хотим видеть блок <wsdl:fault> для нормальной обработки ошибок клиентским кодом. Необходимо именно свое самописное, т.к. нужны свои поля для доп информации, а простой вызов вызватьИсключение - бросает стандартное исключение как если бы это произошло в рантайме, а также в message не перетирает стэктрейс системы 1с, а добавляет к нему текст ошибки который ему дали в констукторе, что крайне не подходит для клиента. Плюс такой вызов не генерирует в wsdl блок <wsdl:fault> (видимо где то нужно отдельно помечать что метод может выбросить такое то исключение) что приводит к тому что клиент не знает что его может ждать при вызове этого метода, и приходится обобщенно оборачивать в обработку любого исключения. |
|||
|
1
ДНН
27.04.22
✎
13:30
|
(0) вроде никак. Если только не сделать Web-servise через http-service и вручную формировать XML
|
|||
|
2
pylyptiy
27.04.22
✎
13:35
|
(1) А как тогда принято в инфраструктуре 1с писать подобные вещи? клиентский код является java-приложением, коим разработчиком я и являюсь. Какие типовые решения пишутся для ответов об ошибках в 1с ws? Это же полный мрак в модель бизнес-нагрузки пихать какие то error поля и заполнять их в случае необходимости. Какие могут быть другие решения?
|
|||
|
3
dreizehn
27.04.22
✎
15:16
|
(0) > свое самописное исключение
В 1С нет своих самописных исключений (0) > крайне не подходит для клиента Проблемы клиента. (1) > Это же полный мрак Тебя заставили заниматься 1С кнутом или пряником? Как ты в своей жабе различешь прикладные ошибки "нет достаточного количества на складе" от ошибок приложения "деление на ноль"? |
| Форум | Правила | Описание | Секции | Поиск |