在Dockerfile中运行JAXB / XJC会产生GConf错误

时间:2015-04-22 10:29:48

标签: java xml jaxb docker gconf

我将docker与Java项目结合使用 在构建过程中编译的。 现在我尝试基于Collada生成Java代码 通过调用以下shell脚本来实现XML模式1.5 在Dockerfile中:

BASEDIR=$(dirname $0)
xjc $BASEDIR/schema/collada/collada-schema-1.5.xsd \
    -d $BASEDIR/knowrob_vis/src/main/java \
    -p org.knowrob.vis.collada \
    -extension $BASEDIR/schema/simpleMode.xsd

不幸的是,这会产生以下错误:

(process:4093): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
GConf Error: No D-BUS daemon running

在我的主机上,它可以正常生成Java代码。 您可以在此处找到Dockerfile:https://raw.githubusercontent.com/knowrob/docker/master/hydro-knowrob/hydro-knowrob-daemon_local/Dockerfile

EDIT1: 看来xjc有一些奇怪的XServer依赖。 这对我来说没有意义。 如何避免这个问题?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。 事实上,可以忽略DBus错误。

问题是对xjc所在的目录没有写权限 尝试生成文件。 通过将所有权切换到Dockerfile中使用的用户来修复它。