DICOM:dcm4chee开源框架编译相关问题总结

Posted zssure

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DICOM:dcm4chee开源框架编译相关问题总结相关的知识,希望对你有一定的参考价值。

题记:

进入2016金猴年以来,虽然工作一直处在忙碌的状态,但博客许久没有更新,主要是工作比较琐碎,相关性不大。但近期通过邮件咨询放疗相关信息的网友比较多,感觉大家可能比较关注DICOM标准中的放疗部分,DICOM-RT。因此计划2016上半年着重介绍一下DICOM RT的相关内容。相关博文暂时放到【DICOM医学图像处理】专栏中,待积累一段后再单独开栏,敬请期待。

背景:

介绍DICOM-RT相关内容,会从放疗知识点非专业人士,如果有误请及时拍砖)、DICOM-RT标准,以及开源框架三个方面进行介绍。之前在【DICOM医学图像处理】专栏中介绍过诸多开源框架,主要有dcm4cheeX.X、Orthanc,以及使用WAMP+CGI+dcmtk自建的。为了更好的、系统的介绍DICOM-RT相关知识,决定使用dcm4chee作为后续系列博文的基础平台。
关于dcm4chee开源框架的编译、安装,以及使用,可参考之前的两篇博文DICOM:开源DICOM服务框架DCM4CHE 构建DICOM:Ubuntu14环境下安装dcm4chee+oviyam2.1
近期由于重新更新系统,导致本地的dcm4chee环境丢失,在重新构建过程中又遇到了一些新的问题。因此本篇博文作为上述两篇的补充,总结记录一下具体编译、安装过程中遇到的新老问题,为后续系列博文做准备。

DCM4CHEE构建新老问题汇总:

1. unbound classpath variable

按照官网Eclipse Development Environment说明操作导入dcm4jboss-all工程时,会发现工程文件夹中出现红色的感叹号,但是编译可能没有问题,根据Markers窗口提示可以看到“unbound classpath variable”提示,该问题是由于项目没有添加依赖的环境变量导致的。右键出现红色感叹号的工程,选择“Properties”,在Java Build Path中的“Libraries”下选择“Add Variables…”即可。如下图所示:

2. dcm4jboss-all项目工程出现“x”提示

按照上述官方指示,成功导入dcm4jboss-all各工程后,会发现工程图标上出现红色的X。这个多半是由于缺少依赖库导致的,即使各个Ant和Maven工程都可以在Eclipse IDE下编译成功,依然会出现缺少依赖库的错误。这个IDE工程有关,该问题在博文DICOM:dcm4che开源项目导入Eclipse编译错误问题解决方案中有提到过,文中提到了具体的解决方案。这里我们可以通过在工程的Java Build Path中“Libraries”添加缺少的jar包即可。

3. Syntax error, annotations are only available if source level is 1.5 or greater

该问题是由于JDK版本兼容设置过低导致的,dcm4chee官方要求JDK版本在1.5以上。解决方案如下:

【备注】:这个问题不一定都会遇到,是由于之前配置Eclipse IDE环境是自己误操作导致的。

4. Must Override a Superclass Method’ Errors after importing a project into Eclipse

该问题的解决方案同上,依然是由于JDK版本兼容设置过低导致的。

5. [ERROR] Error loading property file ‘$db.properties’

通常完整的错误信息提示如下:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.6:resources (default-resources) on project dcm4chee-usr-entity: Error loading property file ‘..\\zssure\\dcm4chee-usr\\dcm4chee-usr-entity\\src\\main\\filters$db.properties’
检索dcm4cheeX.X项目顶层文件夹,可以发现对于dcm4chee-arc3-entitiesdcm4chee-arrdcm4chee-usr三个项目来说,在使用mvn install时需要输入-Ddb=参数,例如-Ddb=mysql
上述错误是由于没有指定数据库参数导致的。

6. Last packet sent to the server was XXX ms ago

由于之前都是在Windows平台下使用dcm4cheeX.X,我本地安装的mysql Server服务并未设置为自启动,因此运行dcm4chee时会出现上述错误。
Windows平台下设置服务自启动如下:

7. Launch dcm4chee from within Eclipse

官网Eclipse Development Environment说明中的launch configure具体配置过程如下:

详情参见Eclipse官方描述中的Platform Plug-in Developer Guide > Programmer’s Guide > Program debug and launch support > Debugging a program章节。

8. hibernate3:hbm2ddl could not get configurationTask

该问题通常是由于指定项目POM.xml中设置的JDK与系统环境变量JAVA_HOME不一致导致的。
有一点尤其要注意本地环境变量JAVA_HOME、Eclipse IDE的IDE,以及Ecipse各项目对应的JDK可能都不相同,尤其是在Windows环境下
【备注】:整个dcm4chee工程源码的编译要求maven为3.2.X版本,JDK需要时1.6版本(即本地环境变量JAVA_HOME),3.3.X版本的maven要求对应的JDK是1.8,无法无法顺利通过编译,会弹出如下错误提示:Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.1:hbm2ddl (default) on project dcm4chee-arr…

9. maven install过程中提示缺少依赖jar包

该问题有两种解决方案,一种是拷贝之前编译成功者的本地maven仓库,例如我本地的是C:\\Users\\Administrator.m2;另一种就是Google下载缺少的jar包,使用maven install:install-file指令手动安装jar包或classes压缩包到本地maven仓库,关于maven仓库的介绍可以参考这篇博文

总结:

对于dcm4cheeXX开源框架的编译,算上本博文已经写了三篇了,但依然不可能涵盖遇到的所有问题,毕竟每个人的部署环境是不同的,所以有一些问题如果本博文没有提及,可自行google或Bing(百度效果不咋地^_^),如果你有共享精神可以发邮件给我说明你的问题及解决方案,我统一整理,亦或直接在博文下方回复,以便大家相互交流,共同进步,共勉。(当然如果有时间可以构建一个docker镜像或vm虚拟机,应该就可以解决部署环境不一致问题)。




作者:zssure@163.com
时间:2016-03-05
时间:2016-07-06 修订1

以上是关于DICOM:dcm4chee开源框架编译相关问题总结的主要内容,如果未能解决你的问题,请参考以下文章

DICOM:DICOM开源库多线程分析之“LF_ThreadPool in DCM4CHEE”

DICOM:fo-dicomdcm4che14dcm4chee等开源库持续自我维护

DICOM:DICOM开源库多线程分析之“ThreadPoolQueue in fo-dicom”

DICOM:DICOM开源库多线程分析之“ThreadPoolQueue in fo-dicom”

DICOM:DICOM开源库多线程分析之“ThreadPoolQueue in fo-dicom”

DICOM:dcm4che开源项目导入Eclipse编译错误问题解决方案