2011-05-03 1 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가 모두 참임을 확인했습니다. webMathematica에서 동일한 명령을 실행하면 nbTest는 True이지만 cdfTest는 False입니다. 수 있도록 방법을 찾아 내가 webMathematica의 보안 구성을 검색 한

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

: 당신은 여기에 결과를 생성하는 코드를 볼 수 있습니다

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

: 당신은 여기에 결과를 볼 수 있습니다 CDF 내보내기는 없지만 아무 것도 찾지 못했습니다. 누구든지 이것을 가능하게하는 방법을 알고 있습니까? 물론, 의도적으로이 컨텍스트에서 비활성화 될 수 있습니다.

제 의도는 HTML 양식을 통해 액세스되는 JSP 페이지에서 동적으로 생성 된 CDF 문서를 제공하는 것입니다. 이렇게하면 텍스트 입력과 함께 멋진 CDF 상호 작용이 가능해집니다.

편집 : 우리 서버의 Mathematica 버전을 업데이트하고 위의 코드를 업데이트하여 전체 버전 문자열이 나타나도록하십시오. 따라서 버전 8.0.1임을 알 수 있습니다. 문제가 지속됩니다.

+0

webMathematica가 같은 버전입니까? (아마도 8)? – ragfield

+0

_ExportString :: format : "CDF"는 인식 된 ExportString 형식이 아닙니다. "_ Mma 8.0.0 표준 프론트 엔드에서 –

+0

@ belisarius mma 8.01 win7-64에서 오류가 나타나지 않습니다. 아마도 @Ragfield가 제안한 것처럼, 8.00과 8.01의 차이점은 무엇입니까? webMMA가 없으므로 테스트 할 수 없습니다. –

답변

4

마크,

당신이 UsingFrontEnd에 ExportString ... "CDF를"] 포장하고 도움이 있는지 확인하려고 할 수 있을까요?

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