Официальный сайт движения «Москва без Лужкова!»
Главная Новости Москвы Наши новости Популярное
  • Новости
  • Новости
  • ВХОД В ЛИЧНЫЙ КАБИНЕТ
    логин
    пароль
       
    Новости

    Политика JavaCallout

    1. Какие
    2. когда
    3. Около
    4. образцы
    5. Получить свойства в вашем коде Java
    6. Установите переменные потока в вашем коде Java
    7. Ссылка на элемент
    8. Атрибуты <JavaCallout>
    9. Элемент <DisplayName>
    10. Элемент <ClassName>
    11. Элемент <Property>
    12. Атрибуты
    13. Элемент <ResourceURL>
    14. Ссылка на ошибку
    15. Ошибки во время выполнения
    16. Ошибки развертывания
    17. Переменные ошибки
    18. Пример ответа на ошибку
    19. Пример неисправности
    20. Schemas
    21. ограничения
    22. упаковка
    23. Javadoc
    24. Примечания по использованию

    Какие   Позволяет использовать Java для реализации настраиваемого поведения, которое не входит в комплект политики Apigee

    Какие

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

    Для поддерживаемых версий Java, см. Поддерживаемое программное обеспечение и поддерживаемые версии ,

    когда

    Инструкции см. В разделе «Когда я должен использовать выноску Java?» в Как создать выноску Java ,

    Около

    Политика Java Callout позволяет вам получать и устанавливать переменные потока, выполнять пользовательскую логику и выполнять обработку ошибок, извлекать данные из запросов или ответов и многое другое. Эта политика позволяет реализовать пользовательское поведение, которое не охватывается никакими другими стандартными пограничными политиками.

    Вы можете упаковать свое Java-приложение любым необходимым JAR-файлом. Обратите внимание, что существуют некоторые ограничения на то, что вы можете делать с помощью Java Callout. Они перечислены ниже в ограничения ,

    образцы

    Простой пример

    Как создать выноску Java

    Получить свойства в вашем коде Java

    Элемент <Property> политики позволяет вам указать пару имя / значение, которую вы можете получить во время выполнения в своем коде Java. Для рабочего примера, который использует свойства, см. Как использовать свойства в вызове Java ,

    Используйте атрибут name элемента <Property>, чтобы указать имя, с которым будет осуществляться доступ к свойству из кода Java. Значение элемента <Property> (значение между открывающим и закрывающим тегами) - это значение, которое будет получено кодом Java. Значение должно быть строкой; Вы не можете ссылаться на переменную потока, чтобы получить значение.

    • Настройте свойство. Здесь значением свойства является имя переменной response.status.code. <JavaCallout async = "false" continueOnError = "false" enabled = "true" name = "JavaCallout"> <DisplayName> JavaCallout </ DisplayName> <ClassName> com.example.mypolicy.MyJavaCallout </ ClassName> <ResourceURL> java: //MyJavaCallout.jar </ ResourceURL> <Properties> <Property name = "source"> response.status.code </ Property> </ Properties> </ Javascript>
    • В своем Java-коде реализуйте следующий конструктор для реализации класса Execution следующим образом:
      Открытый класс MyJavaCallout реализует Execution {public MyJavaCallout (Map <string, string> props) {// Извлечение значений свойств из карты. } ...}

    Установите переменные потока в вашем коде Java

    Для ясного описания того, как установить переменные в контексте сообщения (переменные потока) в вашем коде Java, смотрите это Сообщение сообщества Apigee ,

    Ссылка на элемент

    Ссылка на элемент описывает элементы и атрибуты политики JavaCallout.

    <JavaCallout name = "MyJavaCalloutPolicy"> <ClassName> com.example.mypolicy.MyJavaCallout </ ClassName> <ResourceURL> java: //MyJavaCallout.jar </ ResourceURL> </ JavaCallout>

    Атрибуты <JavaCallout>

    <JavaCallout name = "MyJavaCalloutPolicy" enabled = "true" continueOnError = "false" async = "false">

    В следующей таблице описаны атрибуты, общие для всех родительских элементов политики:

    Атрибут Описание Имя присутствия по умолчанию

    Внутреннее название политики. Значение атрибута name может содержать буквы, цифры, пробелы, дефисы, подчеркивания и точки. Это значение не может превышать 255 символов.

    При желании используйте элемент <DisplayName>, чтобы пометить политику в редакторе прокси пользовательского интерфейса управления другим именем на естественном языке.

    N / A Обязательный continueOnError

    Установите в false, чтобы вернуть ошибку при сбое политики. Это ожидаемое поведение для большинства политик.

    Установите значение true, чтобы выполнение потока продолжалось даже после сбоя политики.

    false Необязательно включен

    Установите в значение true, чтобы применить политику.

    Установите в false, чтобы «отключить» политику. Политика не будет применена, даже если она остается подключенной к потоку.

    true Необязательный асинхронный

    Этот атрибут устарел.

    ложный Устаревший

    Элемент <DisplayName>

    Используйте в дополнение к атрибуту name, чтобы пометить политику в редакторе прокси пользовательского интерфейса управления другим именем на естественном языке.

    <DisplayName> Отображаемое имя политики </ DisplayName> По умолчанию:

    N / A

    Если этот элемент не указан, используется значение атрибута имени политики.

    Наличие:

    необязательный тип: строка

    Элемент <ClassName>

    Задает имя класса Java, который выполняется при выполнении политики Java Callout. Класс должен быть включен в файл JAR, указанный в <ResourceURL>. Смотрите также Как создать выноску Java ,

    <JavaCallout name = "MyJavaCalloutPolicy"> <ResourceURL> java: //MyJavaCallout.jar </ ResourceURL> <ClassName> com.example.mypolicy.MyJavaCallout </ ClassName> </ JavaCallout> По умолчанию: нет данных Присутствие: обязательный тип: строка

    Элемент <Property>

    Определяет свойство, к которому вы можете получить доступ из кода Java во время выполнения. Вы должны указать буквальное строковое значение для каждого свойства; Вы не можете ссылаться на переменные потока в этом элементе. Для рабочего примера, который использует свойства, см. Как использовать свойства в вызове Java ,

    <Properties> <Property name = "propName"> propertyValue </ Property> </ Properties> По умолчанию: Нет Наличие: Необязательно Тип: String

    Атрибуты

    Атрибут Описание Имя присутствия по умолчанию

    Определяет имя свойства.

    Не требуется.

    Элемент <ResourceURL>

    Этот элемент определяет файл JAR Java, который будет выполняться при выполнении политики вызова Java.

    Этот файл можно сохранить в области прокси-сервера API (в / apiproxy / resources / java в комплекте прокси-сервера API или в разделе «Сценарии» панели «Навигатор» редактора прокси-сервера API) или в областях организации или среды для повторного использования через несколько прокси-серверов API. как описано в Ресурсные файлы ,

    <JavaCallout name = "MyJavaCalloutPolicy"> <ResourceURL> java: //MyJavaCallout.jar </ ResourceURL> <ClassName> com.example.mypolicy.MyJavaCallout </ ClassName> </ JavaCallout> По умолчанию: нет Присутствие: обязательно Тип: Строка

    Ссылка на ошибку

    В этом разделе описываются коды ошибок и сообщения об ошибках, которые возвращаются, и переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила неисправностей для обработки неисправностей. Чтобы узнать больше, смотрите Что нужно знать об ошибках политики а также Обработка ошибок ,

    Ошибки во время выполнения

    Эти ошибки могут возникать при выполнении политики.

    Код ошибки Строка ошибки Состояние HTTP Происходит, когда javacallout.ExecutionError Не удалось выполнить JavaCallout. [policy_name] 500 См. строку ошибки.

    Ошибки развертывания

    Эти ошибки могут возникать при развертывании прокси-сервера, содержащего политику.

    Имя ошибки Строка ошибки Статус HTTP Происходит, когда ResourceDoesNotExist Ресурс с именем [имя] и типом [тип] не существует Н / Д Файл, указанный в элементе <ResourceURL>, не существует. JavaCalloutInstantiationFailed Не удалось создать экземпляр класса JavaCallout [classname] N / A Файл класса, указанный в элементе <ClassName>, отсутствует в банке. IncompatibleJavaVersion Не удалось загрузить определение класса Java [имя класса] из-за - [причина] Н / Д. См. Строку ошибки. Смотрите также Поддерживаемое программное обеспечение и поддерживаемые версии , JavaClassNotFoundInJavaResource Не удалось найти ClassName в ресурсе java [jar_name] - [class_name] N / A См. Строку ошибки. JavaClassDefinitionNotFound Не удалось загрузить определение класса Java [имя_класса] из-за - [причина] Н / Д. См. Строку ошибки. NoAppresponConstructor Не найдено подходящего конструктора в классе JavaCallout [имя_класса] N / A См. Строку ошибки. NoResourceForURL Не удалось найти ресурс с URL-адресом [строка] Н / Д. См. Строку ошибки.

    Переменные ошибки

    Эти переменные устанавливаются, когда эта политика вызывает ошибку. Для получения дополнительной информации см. Что нужно знать об ошибках политики ,

    Переменные Где Пример fault.name = "fault_name" fault_name - это имя ошибки, как указано в Ошибки во время выполнения таблица выше. Название ошибки является последней частью кода ошибки. fault.name Соответствует «ExecutionError». javacallout.policy_name.failed policy_name - это указанное пользователем имя политики, которая вызвала ошибку. javacallout.JC-GetUserData.failed = true

    Пример ответа на ошибку

    {"fault": {"faultstring": "Не удалось выполнить JavaCallout. [policy_name]", "detail": {"errorcode": "javacallout.ExecutionError"}}}

    Пример неисправности

    <FaultRule name = "JavaCalloutFailed"> <Step> <Name> AM-JavaCalloutError </ Name> </ Step> <Condition> (fault.name соответствует «ExecutionError») </ Condition> </ FaultRule>

    Schemas

    Компиляция и развертывание

    Подробнее о том, как скомпилировать свой пользовательский код Java и развернуть его с прокси-сервером, см. Как создать выноску Java ,

    ограничения

    Ниже приведены ограничения, которые вы должны учитывать при написании Java Callouts:

    • Большинство системных вызовов запрещено. Например, вы не можете выполнять чтение или запись внутренней файловой системы.
    • Доступ к сети через сокеты. Apigee ограничивает доступ к адресам sitelocal, anylocal, loopback и linklocal.
    • Выноска не может получить информацию о текущем процессе, списке процессов или использовании ЦП / памяти на компьютере. Хотя некоторые такие вызовы могут быть функциональными, они не поддерживаются и могут быть активно отключены в любое время. Для прямой совместимости вы должны избегать таких вызовов в своем коде.
    • Опора на библиотеки Java, включенные в Apigee Edge, не поддерживается. Эти библиотеки предназначены только для функциональности продукта Edge, и нет никакой гарантии, что библиотека будет доступна от выпуска к выпуску.
    • Не используйте io.apigee или com.apigee в качестве имен пакетов в Java Callouts. Эти имена зарезервированы и используются другими модулями Apigee.

    упаковка

    Поместите JAR в прокси API в / resources / java. Если ваш Java Callout использует дополнительные сторонние библиотеки, упакованные в виде независимых файлов JAR, поместите эти файлы JAR в каталог / resources / java, чтобы убедиться, что они правильно загружаются во время выполнения.

    Если вы используете пользовательский интерфейс управления для создания или изменения прокси-сервера, добавьте новый ресурс и укажите дополнительный зависимый файл JAR. Если есть несколько JAR-файлов, просто добавьте их в качестве дополнительных ресурсов. Вам не нужно изменять конфигурацию политики, чтобы ссылаться на дополнительные файлы JAR. Поместить их в / resources / java достаточно.

    Для получения информации о загрузке Java JAR см. Ресурсные файлы ,

    Для подробного примера, который демонстрирует, как упаковать и развернуть Java Callout, используя Maven или javac, смотрите Как создать выноску Java ,

    Javadoc

    Javadoc для написания кода Java Callout включен здесь на GitHub , Вам нужно будет клонировать или загрузить HTML-код в свою систему, а затем просто открыть файл index.html в браузере.

    Примечания по использованию

    • Политика Java Callout не содержит реального кода. Вместо этого политика Java Callout ссылается на «ресурс» Java и определяет шаг в потоке API, в котором выполняется код Java. Вы можете загрузить свой JAR-файл через редактор прокси-интерфейса пользовательского интерфейса управления или включить его в каталог / resources / java в прокси API, которые вы разрабатываете локально.
    • Для облегченных операций, таких как вызовы API для удаленных служб, мы рекомендуем использовать политику ServiceCallout. Увидеть Политика обслуживания вызовов ,
    • Для относительно простых взаимодействий с содержимым сообщений, таких как изменение или извлечение заголовков HTTP, параметров или содержимого сообщений, Apigee рекомендует использовать политику JavaScript.

    В разделе «Когда я должен использовать выноску Java?

     

    Найди свой район!

    Восточный

    Западный

    Зеленоградский

    Северный

    Северо-Восточный

    Северо-Западный

    Центральный

    Юго-Восточный

    Юго-Западный

    Южный

    Поиск:      


     
    Rambler's Top100
    © 2007 Движение «Москва без Лужкова!»