Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数据库装载静态资源(映像)_Java_Wicket_Wicket 1.5 - Fatal编程技术网

Java 从数据库装载静态资源(映像)

Java 从数据库装载静态资源(映像),java,wicket,wicket-1.5,Java,Wicket,Wicket 1.5,我正在使用wicket 1.5.10、Tomcat7和Java6。在我的代码中,我执行以下操作: public final class Images{ public static void mountGlobalStaticImages(){ //loading images from database - works perfect List<Object> imagesParams = GlobalTemplatesDAO.getGlobalImages();

我正在使用wicket 1.5.10、Tomcat7和Java6。在我的代码中,我执行以下操作:

public final class Images{
  public static void mountGlobalStaticImages(){
    //loading images from database - works perfect
    List<Object> imagesParams = GlobalTemplatesDAO.getGlobalImages();
    for(Object record : imagesParams){
      Map<String, Object> image = (Map<String, Object>) record;
      //here mount point is path like '/images/mylogo.png'
      String imagePath = (String) image.get("file_mount_point");
      //ComponentDynamicImage is extending DynamicImageResource, looks it works (it provides required byte[] data)
      ComponentDynamicImage imageData = new ComponentDynamicImage((byte[]) image.get("file_data"));
      //problem is here: looks that it mount image isn't in app and in log is http status code '302'
      //AppStart is extending WebApplication class
      AppStart.get().getSharedResources().add(imagePath, imageData);
    }
  }
}
如何正确安装它们?据我所知,问题出在
AppStart.get().getSharedResources().add(imagePath,imageData)
但我不知道如何正确地做

更新 对于该页面上的其他人,这是基于以下答案的工作代码:

public static void mountGlobalStaticImages(){
    //loading images from database
    List<Object> imagesParams = GlobalTemplatesDAO.getGlobalImages();
    for(Object record : imagesParams){
        Map<String, Object> image = (Map<String, Object>) record;
        //here mount point is path like '/images/mylogo.png'
        String imagePath = (String) image.get("file_mount_point");
        //ComponentDynamicImage extends DynamicImageResource, it provides required byte[] data
        ComponentDynamicImage imageData = new ComponentDynamicImage((byte[]) image.get("file_data"));
        //add imageData into shared resources on path
        AppStart.get().getSharedResources().add(imagePath, imageData);
        //mount from shared resources on path
        AppStart.get().mountResource(imagePath, new SharedResourceReference(imagePath));
    }
}
publicstaticvoid-mountGlobalStaticImages(){
//从数据库加载图像
List imagesParams=GlobalTemplatesDAO.getGlobalImages();
用于(对象记录:imagesParams){
地图图像=(地图)记录;
//这里的挂载点是类似于“/images/mylogo.png”的路径
String imagePath=(String)image.get(“文件装载点”);
//ComponentDynamicImage扩展了DynamicManager资源,它提供了所需的字节[]数据
ComponentDynamicImage imageData=新的ComponentDynamicImage((字节[])image.get(“文件_数据”);
//将imageData添加到路径上的共享资源中
AppStart.get().getSharedResources().add(imagePath,imageData);
//从路径上的共享资源装载
AppStart.get().mountResource(imagePath,新的SharedResourceReference(imagePath));
}
}

您不仅需要将资源添加到共享资源中,还需要注册一个资源引用来访问它(此时,我假设您确保
imageData
包含正确的数据)

之后,您可以使用

new SharedResourceReference("resourceName")
getSharedResources().add("resourcePath", imageData);
mountResource("resourcePath", new SharedResourceReference("resourceName"));
new SharedResourceReference("resourceName")