ORACLE EBS:Can't connect to X11 window server using '**' as the value of the DISPLAY variable.

来源:互联网 发布:淘宝茵曼旗舰店 编辑:程序博客网 时间:2024/06/05 02:27

在ORACLE EBS 12R用XML Publisher 出报表的时候遇到这样一个错误:Exception in thread “main” java.lang.InternalError: Can’t connect to X11 window server using ‘**’ as the value of the DISPLAY variable.

报错明细

Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'host_name:0.0' as the value of the DISPLAY variable.    at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)    at sun.awt.X11GraphicsEnvironment.access$100(X11GraphicsEnvironment.java:52)    at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:155)    at java.security.AccessController.doPrivileged(Native Method)    at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:131)    at java.lang.Class.forName0(Native Method)    at java.lang.Class.forName(Class.java:169)    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)    at sun.font.FontManager.initSGEnv(FontManager.java:1111)    at sun.font.FontManager.findFont2D(FontManager.java:1773)    at java.awt.Font.getFont2D(Font.java:452)    at java.awt.Font.canDisplay(Font.java:1835)    at java.awt.Font.canDisplayUpTo(Font.java:1901)    at java.awt.font.TextLayout.singleFont(TextLayout.java:451)    at java.awt.font.TextLayout.<init>(TextLayout.java:509)    at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:275)    at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117)    at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:79)    at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:656)    at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:648)    at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:83)    at com.xxt.ebs.request.Xml2ExcelHandler.newSheet(Xml2ExcelHandler.java:443)    at com.xxt.ebs.request.Xml2ExcelHandler.startElement(Xml2ExcelHandler.java:97)    at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1315)    at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:362)    at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:308)    at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:213)    at oracle.xml.jaxp.JXSAXParser.parse(JXSAXParser.java:292)    at javax.xml.parsers.SAXParser.parse(SAXParser.java:277)    at com.xxt.ebs.request.CUX_REQUEST_OUTPUT_EXCEL.runProgram(CUX_REQUEST_OUTPUT_EXCEL.java:67)    at oracle.apps.fnd.cp.request.Run.main(Run.java:157)

问题原因

克隆环境的时候有个这样选项,意思为是否保留显示,当时选择了N
Do you want to preserve the Display ? N
导致DISPLAY变量的值是 host_name:0.0,以致于并发管理器调用java里面的awt工具显示的的时候无法显示。

解决方法

01 配置服务器xhost 和DISPLAY变量

#应用服务器root用户[root@host_name ~]# export DISPLAY=:0[root@bak-hesuan ~]# xhost +access control disabled, clients can connect from any host[root@host_name  ~]# #应用服务器应用用户[appl@host_name ~]# export DISPLAY=:0[appl@bak-hesuan ~]# xhost +access control disabled, clients can connect from any host[appl@host_name  ~]# #配置应用用户下的.bashrc文件将export DISPLAY=:0 写到这个文件中去,然后执行 . .bash_profile 生效

02 修改CONTEXT_FILE文件中的DISPLAY配置项

停掉应用。

先修改数据库中的CONTEXT_FILE 的DISPLAY配置项 为 :0 ,做adcfg。

再修改应用上的CONTEXT_FILE 的DISPLAY配置项 为 :0 ,做adcfg。

启动应用,测试。

03 如果再不行在上面的基础上再做以下操作

#将下面的命令配置的应用的操作系统的环境变量上去export JAVA_OPTS=-Djava.awt.headless=true#重启EBS应用,测试。

参考资料

参考mos文章id: 文档 ID 181244.1

阅读全文
0 0