Функция PHP Soap выглядит как «Нет такой операции», хотя в списке функций - PullRequest
1 голос
/ 09 сентября 2011

Попытка получить SOAP-вызовы от wsdl, работающего в PHP.Запрашивая сервер оси WebCT wsdl, и я получаю ответ, что он имеет следующие функции:

Array
(
    [0] => SessionVO login(string $user, string $password, string $learningContextID)
    [1] => void logout(SessionVO $session)
    [2] => ArrayOf_xsd_long getLearningContextIDs(SessionVO $session)
    [3] => ArrayOf_xsd_long getTemplateIDs(SessionVO $session, long $learningContextID)
    [4] => ArrayOf_xsd_string getRoleIDs(SessionVO $session, long $learningContextID)
    [5] => LearningCtxtVO getLearningContext(SessionVO $session, long $learningContextID)
    [6] => ArrayOfLearningCtxtVO getLearningContextList()
    [7] => RoleVO getRoleDefinition(SessionVO $session, string $roleID)
    [8] => ArrayOfRoleVO getRoles(SessionVO $session, long $learningContextID)
    [9] => ArrayOfSourcedIDVO getLearningGroupsByIMSId(SessionVO $session, SourcedIDVO $imsid)
    [10] => ArrayOfSourcedIDVO getLearningGroupsByLCId(SessionVO $session, long $lcid)
    [11] => ArrayOfSourcedIDVO getLearningGroupMembers(SessionVO $session, long $lcid)
    [12] => TemplateVO getTemplate(SessionVO $session, long $learningObjectID)
    [13] => long getLearningContextIdByPath(SessionVO $session, string $path)
    [14] => long getLearningContextIdBySourcedId(string $source, string $id)
    [15] => string getReleaseVersion()
    [16] => boolean isCompatibleWith(string $version)
    [17] => ArrayOf_xsd_long getInstructorPersonIDs(SessionVO $session, long $lcid)
    [18] => long getParent(SessionVO $session, long $lcid)
    [19] => ArrayOf_xsd_long getChildren(SessionVO $session, long $lcid)
)

Однако, когда я выполняю следующую функцию, я получаю сообщение об ошибке "Нет такой операции" getLearningGroupsByIMSId '":

function getAllMembers($contextID = -1) {
        try {
            $learingContext = $this->context->getLearningContext($this->session,$contextID);
            print_r($learingContext);
            $groups = $this->context->getLearningGroupsByIMSId($this->session,$learingContext->sourcedID);
            print_r($groups);
            foreach($groups as $group) {
                $members = $this->context->getLearningGroupMembers($this->session,$group->sourcedID->myID);
                print_r($members);
            }
        } catch(Exception $e) {
            print_r($e);
            return false;
        }
        return $members;
    }

Есть идеи, почему он может не распознавать эту функцию, даже если она отображается в списке функций?Кажется, что все другие функции работают кроме этого и getLearningGroupsByLCId - обе дают ту же ошибку.

...