#wcf #web-services #interop #weblogic #primavera
#wcf #веб-службы #взаимодействие #weblogic #primavera
Вопрос:
На Primavera P6. WSDL установлено множество веб-служб: ActivityCodeAssignment.wsdl
Поле первичного ключа: многокомпонентный ключ, состоящий из следующих элементов:
ActivityObjectId
ActivityCodeTypeObjectId
Целевое пространство имен: http://xmlns.oracle.com/Primavera/P6/WS/ActivityCodeAssignment/V1
Транспортные URL-адреса по умолчанию:
http://<hostname>:<port number>/p6ws/services/ActivityCodeAssignment?wsdl
https://<hostname>:<port number>/p6ws/services/ActivityCodeAssignment?wsdl
Но если я введу это в веб
-браузер: http://my-machine:7005/p6ws/services/ActivityCodeAssignment ?wsdl
Он показывает: «Служба не найдена».
Если я попытаюсь добавить ссылку на службу в Visual Studio, он скажет.
There was an error downloading 'http://my-machine:7005/p6ws/services/ActivityCodeAssignment?wsdl'.
The request failed with HTTP status 404: Not Found.
Metadata contains a reference that cannot be resolved: 'http://my-machine:7005/p6ws/services/ActivityCodeAssignment?wsdl'.
There was no endpoint listening at http://my-machine:7005/p6ws/services/ActivityCodeAssignment?wsdl that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
The remote server returned an error: (404) Not Found.
If the service is defined in the current solution, try building the solution and adding the service reference again.
Использует ли P6 какой-то другой веб-сервис?
Ответ №1:
На моем компьютере, на котором работает Oracle Database, Weblogic server с веб-службами P6 версии 8.1, URL-адрес для этого:
http://<hostname>:<port number>/p6ws/services/ActivityCodeAssignmentService?wsdl
Обратите внимание на слово «Сервис», прикрепленное к концу.
Ответ №2:
Не уверен, какую версию P6 вы используете.
Во-первых, пожалуйста, проверьте, работает URL корневой веб-службы или нет:
[http://hostname:port/p6ws ]
Если нет, вам может потребоваться проверить, правильно ли установлены и развернуты ваши веб-службы P6.
Это руководство администратора веб-служб P6 для версии 7.0:
http://docs.oracle.com/cd/E16281_01/Technical_Documentation/Web_Services/wsadmin.pdf
Если вы можете получить доступ к корневым веб-службам и другим конечным точкам, таким как ActivityService [http://host:port/p6ws/services/ActivityService?wsdl ] вместо ActivityCodeAssignmentService, но вы хотите его использовать, вам может потребоваться создать свои собственные заглушки WS со следующими шагами:
- Создайте проект библиотеки классов в .NET с именем P6WSStubs
- Измените корневое пространство имен на Primavera
- Добавьте ссылку на Microsoft WSE 3.0.
- Добавьте следующую веб-ссылку Ws.P6.ActivityCodeAssignment — [http://hostname:port/p6ws/services/ActivityCodeAssignmentService?wsdl ]
- Создайте P6WSStubs.dll
Надеюсь, это поможет вам,
Yogi