2011-05-03 67 views
3

假設我在Mathematica中輸入以下(編輯過的)代碼片段。從webMathematica提供CDF

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出口,但沒有找到。有沒有人知道一種方法來啓用它?當然,在這種情況下它可能會被故意禁用。

我的意圖是服務從通過HTML表單訪問的JSP頁面動態生成的CDF文檔。這應該允許CDF與文本輸入結合使用。

編輯:我已經更新了我們的服務器上的Mathematica版本,並更新了上面的代碼,以便出現完整版本的字符串。因此,我們可以看到它是版本8.0.1。問題依然存在。

+0

你確定你的webMathematica是相同的版本(大概是8)嗎? – ragfield 2011-05-03 23:32:49

+0

我得到_ExportString :: format:「CDF」不是一個公認的ExportString格式。「_在Mma 8.0.0標準前端 – 2011-05-04 02:47:51

+0

@belisarius對於我在mma 8.01 win7-64上沒有任何錯誤。也許這就是@Ragfield所說的,在8.00和8.01之間的差異問題?我沒有webMMA,所以不能測試。 – 2011-05-04 10:28:28

回答

4

馬克,

你能試着包裹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