2015-03-31 2 views
3

Я использую CFM2WDDX преобразовать массив в CF11, но я получаю эту ошибку:CFML2WDDX Ошибка ColdFusion 11

coldfusion.tagext.validation.WddxValidator$InvalidWddxPacketException: Invalid WDDX packet..

Я использую этот код здесь:

getFileList.cfm

<cfsetting enablecfoutputonly="Yes"> 
<cfset thisdir = ExpandPath(".\")> 
<cfdirectory directory="#thisdir#" action="LIST" name="imagefiles" recurse="No"> 
<cfscript> 
// get .gif|.jpg|.png files from the cfdirectory query... 
numRows = imagefiles.recordcount; 
imageFileArray = ArrayNew(1); 
for (row = 1; row LTE numRows; row++) { 
    if (refindnocase("(.gif|.jpg|.png)",imagefiles.name[row]) neq 0) { 
     ArrayAppend(imageFileArray, imagefiles.name[row]); 
    }  
} 
</cfscript> 
<cfwddx action="cfml2wddx" input=#imageFileArray# output="wddxText"> 
<cfoutput>#wddxText#</cfoutput> 

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

Это код, я использую, чтобы получить доступ к коду выше:

<cfhttp url="http://example.com/images/ClientLogos/getFileList.cfm" method="GET" timeout="10" throwonerror="Yes"> 
    <cfwddx action="WDDX2CFML" input="#trim(cfhttp.filecontent)#" output="imageArray" validate="true"> 
    <cfreturn imageArray> 

getFileList.cfm находится в той же директории с изображениями, так что выполняется на локальном сервере, где набираемые. (Именно поэтому я думал, CF11 может быть проблемой)

Часть выхода из CF9:

enter image description here

И Часть выхода из CF11:

enter image description here

CFHTTP. Заголовок из CF 11:

HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Server: Microsoft-IIS/8.0 X-Powered-By: ASP.NET Access-Control-Allow-Origin: * Date: Tue, 31 Mar 2015 18:50:35 GMT Connection: close Content-Length: 10807 

CFHTTP.Header из CF 9:

HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Vary: Accept-Encoding Server: Microsoft-IIS/7.5 X-Powered-By: ASP.NET Date: Tue, 31 Mar 2015 18:51:20 GMT Connection: close 

+0

https://bugbase.adobe.com/ – Henry

+0

@Henry Вы говорите, что я должен добавить это в баг-базу или найти ее из аналогичные вопросы? – Geo

+0

Если вы просто просматриваете страницу 'getFileList.cfm', она отображает данные в формате WDDX? Я просто сделал быстрый тест на локальном сервере CF9 и CF11. Оба работали, как ожидалось. Однако я не выполнил часть 'cfhttp'. Я просто просмотрел свою тестовую страницу. –

ответ

0

Я не уверен, что является причиной такого поведения, но я нашел золотую середину в настоящее время. Вместо вызова getFileList.cfm через cfhttp я переместил код из getFileList.cfm прямо внутри моей функции, и все работает. Причиной того, что этот файл был начат с него, стало доступ к внешнему обратному репо на другом сервере, который мне больше не нужен/не используется. В любом случае, на самом деле это может быть ошибка CF11, поэтому мы увидим в будущем ...

+0

В чем разница в сгенерированной строке WDDX? –

+0

@JamesMohler нет! – Geo

+0

(Изменить) @Geo - (Согласен, что удаление cfhttp имеет больше смысла, поскольку оно больше не нужно, но из любопытства ...) вы проверили его по характеру и * все * одинаково, включая пробел? – Leigh