Обслуживание CDF от webMathematica - PullRequest
3 голосов
/ 04 мая 2011

Предположим, я ввел следующий (отредактированный) фрагмент кода в Mathematica.

manip = Manipulate[x, {x, 0, 1}];
nb = Developer`UseFrontEnd[
    CreateDocument[manip, ShowCellBracket -> False, 
    Visible -> False]];
nbTest = ExportString[nb, "NB"] =!= $Failed;
cdfTest = ExportString[nb, "CDF"] =!= $Failed;
version = First[StringSplit[SystemInformation["Kernel", "ReleaseID"]]];
{{nbTest, cdfTest},version}

Я считаю, что nbTest и cdfTest имеют значение True. Если я запускаю ту же команду из webMathematica, nbTest будет True, а cdfTest - False. Вы можете увидеть этот результат здесь:

http://www.cs.unca.edu:8082/webMathematica/generateCDF.jsp

Вы можете увидеть код, который генерирует этот результат здесь:

http://www.cs.unca.edu:8082/webMathematica/generateCDF.jsp.txt

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

Мое намерение состоит в том, чтобы обслуживать документы CDF, созданные динамически из страницы JSP, доступ к которой осуществляется через форму HTML. Это должно позволить хорошее взаимодействие CDF в сочетании с текстовым вводом.

Редактировать: я обновил версию Mathematica на нашем сервере и обновил код выше, чтобы появилась полная строка версии. Таким образом, мы видим, что это версия 8.0.1. Проблема сохраняется.

1 Ответ

4 голосов
/ 08 ноября 2011

Марк,

Не могли бы вы попробовать обернуть ExportString [..., "CDF"] в UsingFrontEnd и посмотреть, поможет ли это?

C:\Users\arnoudb>math.exe
Mathematica 8.0 for Microsoft Windows (64-bit)
Copyright 1988-2011 Wolfram Research, Inc.

In[1]:= nb = CreateDocument[ Manipulate[x,{x,0,1}] ] // UsingFrontEnd

Out[1]= -NotebookObject-

In[2]:= ExportString[ nb, "CDF" ]

FrontEndObject::notavail:
   A front end is not available; certain operations require a front end.

Export::nofe: A front end is not available; export of CDF
     requires a front end.

Out[2]= $Failed

In[3]:= ExportString[ nb, "CDF" ] // UsingFrontEnd // Head

Out[3]= String

In[4]:= $Version

Out[4]= 8.0 for Microsoft Windows (64-bit) (October 7, 2011)

In[5]:= $ReleaseNumber

Out[5]= 4
...