サイトの複製を実行すると,以下のようなエラーが起こる。
ーーー
2010-02-12 09:11:43,670 WARN TP-Processor49 org.sakaiproject.site.tool.SiteAction - org.sakaiproject.site.tool.SiteAction@862ff0.transferCopyEntities: Error encountered while asking EntityTransfer to transferCopyEntities from: a4ac7cc5-0534-4da7-9939-7585cf24d699 to: 3df183ec-49f7-4c42-8e75-dfbc8d640331
java.lang.NoSuchMethodError: org.sakaiproject.content.api.ContentResource.getContentLength()I
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.uploadSectionDependentFile(MeleteImportfromSiteServiceImpl.java:378)
at org.etudes.component.app.melete.MeleteImportBaseImpl.ReplaceEmbedMediaWithResourceURL(MeleteImportBaseImpl.java:147)
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.createHTMLFile(MeleteImportfromSiteServiceImpl.java:355)
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.processEmbedDatafromHTML(MeleteImportfromSiteServiceImpl.java:225)
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.createContentResource(MeleteImportfromSiteServiceImpl.java:89)
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.buildModules(MeleteImportfromSiteServiceImpl.java:504)
...
ーーー
ーーー
2010-02-12 09:11:43,670 WARN TP-Processor49 org.sakaiproject.site.tool.SiteAction - org.sakaiproject.site.tool.SiteAction@862ff0.transferCopyEntities: Error encountered while asking EntityTransfer to transferCopyEntities from: a4ac7cc5-0534-4da7-9939-7585cf24d699 to: 3df183ec-49f7-4c42-8e75-dfbc8d640331
java.lang.NoSuchMethodError: org.sakaiproject.content.api.ContentResource.getContentLength()I
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.uploadSectionDependentFile(MeleteImportfromSiteServiceImpl.java:378)
at org.etudes.component.app.melete.MeleteImportBaseImpl.ReplaceEmbedMediaWithResourceURL(MeleteImportBaseImpl.java:147)
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.createHTMLFile(MeleteImportfromSiteServiceImpl.java:355)
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.processEmbedDatafromHTML(MeleteImportfromSiteServiceImpl.java:225)
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.createContentResource(MeleteImportfromSiteServiceImpl.java:89)
at org.etudes.component.app.melete.MeleteImportfromSiteServiceImpl.buildModules(MeleteImportfromSiteServiceImpl.java:504)
...
ーーー
松岡さん曰く,教材に画像が入っていると,そこでコピー失敗するよう?
Sakai-2.7.x_rev73043 + melete-2.7.2は,
ContentResource.getContentLengthメソッド
ContentResource.setContentLengthメソッド
まわりでなんかおかしい気がする.
このContentResourceクラスは,
$TOMCAT_HOME/shared/lib/sakai-kernel-api-1.1.0-beta09.jarにあるようだが...
とりあえずmeleteのソースを変更して対処。
$melete_src/melete-impl/src/java/org/etudes/component/app/melete/MeleteImportfromSiteServiceImpl.java
% diff MeleteImportfromSiteServiceImpl.java MeleteImportfromSiteServiceImpl.java.org
328,329c328
< //if(embedResource.getContentLength() > 0)
< if (true)
---
> if(embedResource.getContentLength() > 0)
379,380c378
< //if(embedResource != null && embedResource.getContentLength() > 0)
< if(embedResource != null)
---
> if(embedResource != null && embedResource.getContentLength() > 0)
2カ所とも,
embedResource.getContentLength() > 0(サイズが0以上だったら...)とあるが
そこでgetContentLengthを呼ばないようにしただけ.
これで(エラーチェックが甘くなっているが)とりあえず動く。