|
Ошибка публикации веб сервиса, 1C:Enterprise 8 application error | ☑ | ||
---|---|---|---|---|
0
pocketbeast
09.09.24
✎
10:53
|
Всем добрый день! Помогите, пожалуйста, разобраться с проблемой. Весь интернет уже перевернул вверх дном, но так и не нашел решения.
Вручную публиковал веб сервис на сервере, вроде бы все делал правильно, но при переходе на wsdl-структуру, появляется такая ошибка: 1C:Enterprise 8 application error: Error in virtual resources descriptor distribution by reason: Error converting XDTO data: PropertyStart: {http://v8.1c.ru/8.2/virtual-resource-system}accessTokenRecepientName Form: Item Type: {http://www.w3.org/2001/XMLSchema}anyType Я понимаю, что дело в каком-то XDTO-пакете, но если я его убираю из веб сервиса, то ошибка остается такой же. Более подробно опишу проблему в сообщении ниже |
|||
1
pocketbeast
09.09.24
✎
11:16
|
Ситуация следующая: есть два сервера, один основной, а другой нужен для того, чтобы к нему можно получить доступ из вне. На основном сервере есть рабочая база, самописная, версия платформы 8.3.15.1656. На "внешнем" сервере стоит линукс. На нем версия платформы 1с 8.3.24. Необходимо, сделать публикацию веб сервиса с основной базы на внешнем сервере. Понятно, что из-за разных версий платформы сделать такое нельзя, поэтому на внешний сервер установлен отдельно 1с сервер версии 8.3.15.1656. Не стали полностью ставить технологическую платформу, потому что старые версии платформы заставить установиться на линукс - это ад.
Кроме того, на внешнем сервере установлен апач 2.4. А вернее, через setup-instance две его копии (потому что на этом самом внешнем сервере есть необходимость, чтобы работало два сервера 1с, как раз 8.3.24 и 8.3.15). Порты я раскидал, с ними все работает, но при поптыке опубликовать вручную веб сервис по вот этому гайду: http://www.alsigned.ru/?p=416 появляется следующая ошибка при переходе на wsdl ссылку веб-сервиса 1C:Enterprise 8 application error: Error in virtual resources descriptor distribution by reason: Error converting XDTO data: PropertyStart: {http://v8.1c.ru/8.2/virtual-resource-system}accessTokenRecepientName Form: Item Type: {http://www.w3.org/2001/XMLSchema}anyType конфиг vrd: <?xml version="1.0" encoding="UTF-8"?> <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system xmlns:xs="http://www.w3.org/2001/XMLSchema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance base="/EquipmentService" ib="Srvr="kraft";Ref="1s83";"> <ws> <point name="EquipmentService" alias="EquipmentService.1cws" enable="true" reuseSessions="autouse" sessionMaxAge="20" poolSize="10" poolTimeout="5"> <accessTokenAuthentication> <issuers/> <accessTokenRecepientName/> </accessTokenAuthentication> </point> </ws> <standardOdata enable="false" reuseSessions="autouse" sessionMaxAge="20" poolSize="10" poolTimeout="5"/> </point> конфиг апача: LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so" # 1c publication Alias "/EquipmentService" "/var/www/EquipmentService/" <Directory "/var/www/EquipmentService/"> AllowOverride All Options None Require all granted SetHandler 1c-application ManagedApplicationDescriptor "/var/www/EquipmentService/default.vrd" </Directory> |
|||
2
pocketbeast
09.09.24
✎
15:03
|
up
|
|||
3
spiller26
09.09.24
✎
15:09
|
(2) Ну ничего адского нет, чтобы 2 платформы работали в линух, старую скопировать в другую папку и нужно другие порты прописать.
|
|||
4
spiller26
09.09.24
✎
15:14
|
Права на папку, где vrd давал 777?
|
|||
5
pocketbeast
09.09.24
✎
15:24
|
(4) да, давал. Так дело же, как я понял из описания ошибки, в другом все-таки.
Error converting XDTO data: PropertyStart: {http://v8.1c.ru/8.2/virtual-resource-system}accessTokenRecepientName Form: Item Type: {http://www.w3.org/2001/XMLSchema}anyType. Вот он не может переконвертировать почему-то вот это: accessTokenRecepientName. В vrd веб-сервиса я нашел тег с таким же названием и попробовал его удалить. Но после этого при переходе по ссылке на wsdl структуру, происходит бесконечная загрузка |
|||
6
spiller26
09.09.24
✎
15:27
|
(1) Вы видели что публикация статьи "Июл 25, 2010"?
Поищите поновее. Apache уже 2.4 давно и там немного по другому. |
|||
7
pocketbeast
09.09.24
✎
15:30
|
(6) видел, пользовался в том числе и этой: https://renbuar.blogspot.com/2020/05/apache-1.html (там как раз и про создание двух копий апача расписано), но неудача все равно настигла
|
|||
8
spiller26
09.09.24
✎
15:32
|
(5) Снесите и заново всё сделайте на apache 2.4.
Ищите что-то подобное: "1c web сервер ubuntu 22 настройка" или "1c web сервер ubuntu 24 настройка" https://dzen.ru/a/Y3Xu6l0t1WaBwglg https://its.1c.ru/db/metod8dev/content/5979/hdoc |
|||
9
spiller26
09.09.24
✎
15:36
|
(7) Сделайте 2 разных web сервера 1c, они весят мало.
|
|||
10
pocketbeast
09.09.24
✎
15:38
|
(8) Вы правы. Я очень не хотел этого делать, надеялся, что получится обойтись без переустановки. Но, судя по всему проблема даже не в публикации, а именно где-то в апаче. Спасибо, сейчас и попробую
|
|||
11
spiller26
09.09.24
✎
15:45
|
(10) Лучше уже заново всё сделать а не "выковыривать старое".
|
|||
12
pocketbeast
09.09.24
✎
16:50
|
всё заработало!!!
Во время переустановки пользовался в большей степени вот этой статьей: https://renbuar.blogspot.com/2020/05/apache-1.html. Особое внимание стоит обратить на момент, где для апача отключается mpm_event и подключается mpm_worker. В первый раз я этого не делал. Так что, полагаю, ошибка была в этом. Надеюсь, кому-нибудь поможет. |
|||
13
pocketbeast
09.09.24
✎
17:15
|
забыл еще добавить, что по умолчанию при публикации через команду он будет создавать vrd файл, в котором не будет записан тег "ws". Из-за этого при попытке зайти на ссылку с wsdl структурой веб сервиса, будет выкидывать ошибку 404. Это потому, что в vrd не описаны сами сервисы, которые должны быть включены. По идее там надо описывать сервисы вот в таком виде:
<ws pointEnableCommon="false"> <point name="EquipmentService" alias="EquipmentService.1cws" enable="true" reuseSessions="autouse" sessionMaxAge="20" poolSize="10" poolTimeout="5"> <accessTokenAuthentication> <issuers/> <accessTokenRecepientName/> </accessTokenAuthentication> </point> </ws> НО! У меня заработало даже если просто внести пустой тег. Вот так: <ws></ws> Главное, вносить его надо перед тегом "standardOdata" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |