2014-10-09 3 views
1

Мне нужно сохранить значение системной переменной «system.timestamp» в переменной потока. (Идея заключается в том, чтобы получить продолжительность некоторых политик выноски между ними)Переменные потока нагрузки с нестроковыми значениями в ApiGEE

Однако, я не могу читать, потому что политика AssignMessage поднимает ошибку:

{ 
    "fault": { 
     "faultstring": "java.lang.Integer cannot be cast to java.lang.String", 
     "detail": { 
      "errorcode": "Internal Server Error" 
     } 
    } 
} 

Ни длинные, ни Целые значения не могут быть read, только строки, которые выглядят странно, потому что, как бы разоблачить переменные, которые невозможно прочитать?

Я пытаюсь избежать «не элегантную» политики Javascript, если это вообще возможно, так вот [очень простой] AssignMessage политика Я использую для чтения значения:

<AssignMessage async="false" continueOnError="false" enabled="true" name="time-test"> 
    <DisplayName>TimeTest</DisplayName> 

    <AssignVariable> 
     <Name>myvar</Name> 
     <Ref>system.timestamp</Ref> 
    </AssignVariable> 

    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> 
    <AssignTo createNew="false" transport="http" type="request"/> 
</AssignMessage> 

системы .timestamp переменная описана здесь: http://apigee.com/docs/api-services/reference/variables-reference#-a-class-jumplink-name-system-a-system-variables

ответ

1

Если политика AssignMessage не работает, вы должны быть в состоянии сделать это, используя JavaScript policy. Это позволит вам преобразовать метку времени в любую форму, в которой она должна быть. Аналогичным образом, для выполнения любых временных расчетов или манипуляций в прокси-сервере может использоваться политика JavaScript.

+0

Спасибо, Майк, это мой план Б. Я добавлю «без разъяснения политики JavaScript» в моем вопросе. – Migs

1

Migs, это текущее ограничение продукта. Я также использую system.timestamp в своем коде, и я решу эту проблему с 1 или 2 строкой JavaScript-политики, которая создает новую строковую переменную с именем systemTimestamp. В настоящее время я не знаю лучшего решения.

+0

Спасибо, много Майк, я вижу, что вы «главный архитектор @ Apigee», поэтому я не могу ожидать ничего более официального, чем ваш ответ. В честь правил FIFO я буду отмечать предыдущий ответ Майка как избранный, поскольку он предложил то же самое. – Migs

 Смежные вопросы

  • Нет связанных вопросов^_^