EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
<== Date ==> <== Thread ==>

Subject: Re: Display Images on .bob using DBWR
From: "Kasemir, Kay via Tech-talk" <tech-talk at aps.anl.gov>
To: Vishnu Patel <patel.vishnu at hotmail.com>, EPICS Tech Talk <tech-talk at aps.anl.gov>
Date: Fri, 7 Aug 2026 13:04:11 +0000
See https://github.com/ornl-epics/dbwr/blob/main/Readme.md and follow the suggestion under Client URLs” about making all files available via web links.
Instead of 
...view.jsp?display=file:/path/to/display.bob
you want to go with 
...view.jsp?display=http://my_control_system_host/displays/path/to/display.bob

That way, you’ll end up with image links like
 http:/my_control_system_host/LCPC/Symbol/VR Steam Trap.png
that allow the client to fetch the file and not
 file:/opt/tomcat/webapps/dbwr/LCPC/Symbol/VR Steam Trap.png
where the client tries to get a file that only exists on the web server file system

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Vishnu Patel via Tech-talk <tech-talk at aps.anl.gov>
Date: Friday, August 7, 2026 at 5:49 AM
To: EPICS Tech Talk <tech-talk at aps.anl.gov>
Subject: [EXTERNAL] Display Images on .bob using DBWR

This Message Is From an External Sender
This email was sent from a non-ORNL address. If suspicious, use the Report Phish button in Outlook.
 
Dear Sir,
      I have configured the Phoebus Display Builder Web Runtime(DBWR) to display .bob files through a web browser.
After completing the Tomcat and DBWR configuration, I am able to successfully open and display the .bob panel in the client machine web browser. However, the pictures/symbols used in the .bob file are not displayed.
The browser shows an error while trying to load these image/symbol files. It appears that DBWR is referring to the image files using a local file path on the server, which cannot be accessed by the client browser.
The browser console error is shown below. 
--------------------
Loading 'file:/opt/tomcat/webapps/dbwr/LCPC/CompressorLocal.bob' with {}
dbwr.js?V=1786090605:560 New rule for w147 'background_color'
dbwr.js?V=1786090605:134 Connecting PVs
dbwr.js?V=1786090605:134 Disconnected
pvws.js?V=1786090605:30 Opening ws://10.20.120.45:8080/pvws/pv
pvws.js?V=1786090605:40 Connected to ws://10.20.120.45:8080/pvws/pv
dbwr.js?V=1786090605:134 Initialize Widgets
picture.js?V=1786090605:16 Cannot load picture from file:/opt/tomcat/webapps/dbwr/LCPC/Symbol/VR Steam Trap.png because web browser cannot access files on server.
DisplayBuilderWebRuntime.widget_init_methods.picture @ picture.js?V=1786090605:16
6picture.js?V=1786090605:16 Cannot load picture from file:/opt/tomcat/webapps/dbwr/LCPC/Symbol/Radiological Protection Screw1.png because web browser cannot access files on server.
DisplayBuilderWebRuntime.widget_init_methods.picture @ picture.js?V=1786090605:16
view.jsp?display=file:/opt/tomcat/webapps/dbwr/LCPC/CompressorLocal.bob:1 Not allowed to load local resource: file://opt/tomcat/webapps/dbwr/LCPC/Symbol/VR%20Steam%20Trap.png
---------------


The DBWR/Tomcat logs on the server is 
$tail -f /opt/tomcat/logs/catalina.out

07-Aug-2026 13:46:46.276 INFO [http-nio-8080-exec-3] dbwr.rules.RuleSupport.handleRule PolygonWidget ID w147 rule:
<rule name="Rule" out_exp="false" prop_id="background_color">
<exp bool_exp="pv0==1">
<value>
<color blue="0" green="255" red="0">
</color>
</value>
</exp>
<exp bool_exp="pv0==0">
<value>
<color blue="0" green="85" red="0">
</color>
</value>
</exp>
<pv_name>LCPC_CRYO_COMP_C_RUN</pv_name>
</rule>
.. turned into ..
{
  // Rule 'Rule'
  let rule2 = new WidgetRule('w147', 'background_color', ['LCPC_CRYO_COMP_C_RUN']);
  rule2.eval = function()
  {
    let pv0 = this.value['LCPC_CRYO_COMP_C_RUN'];
    let pvStr0 = this.valueStr['LCPC_CRYO_COMP_C_RUN'];
    if (pv0==1) return '#00FF00';
    if (pv0==0) return '#005500';
    return '#005500';
  }
  rule2.update = set_svg_background_color
}

07-Aug-2026 13:46:46.290 INFO [http-nio-8080-exec-3] dbwr.servlets.DisplayCache.getOrCreate Cache created file:/opt/tomcat/webapps/dbwr/LCPC/CompressorLocal.bob {}: Load time 23ms


$tail -f /opt/tomcat/logs/localhost_access_log*.txt

10.20.61.51 - - [07/Aug/2026:13:46:45 +0530] "GET /dbwr/view.jsp?display=file:/opt/tomcat/webapps/dbwr/LCPC/CompressorLocal.bob HTTP/1.1" 200 6255
10.20.61.51 - - [07/Aug/2026:13:46:45 +0530] "GET /dbwr/widgets/actionbutton.css?V=1786090605 HTTP/1.1" 200 688
10.20.61.51 - - [07/Aug/2026:13:46:45 +0530] "GET /dbwr/css/widgets.css?V=1786090605 HTTP/1.1" 200 2595
10.20.61.51 - - [07/Aug/2026:13:46:45 +0530] "GET /dbwr/widgets/databrowser.css?V=1786090605 HTTP/1.1" 200 140
10.20.61.51 - - [07/Aug/2026:13:46:45 +0530] "GET /dbwr/widgets/boolbutton.css?V=1786090605 HTTP/1.1" 200 101
10.20.61.51 - - [07/Aug/2026:13:46:45 +0530] "GET /dbwr/widgets/tabs.css?V=1786090605 HTTP/1.1" 200 1087
10.20.61.51 - - [07/Aug/2026:13:46:45 +0530] "GET /dbwr/widgets/navtabs.css?V=1786090605 HTTP/1.1" 200 1304
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/tank.css?V=1786090605 HTTP/1.1" 200 250
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/textupdate.css?V=1786090605 HTTP/1.1" 200 127
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/group.css?V=1786090605 HTTP/1.1" 200 130
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/led.css?V=1786090605 HTTP/1.1" 200 161
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/textentry.css?V=1786090605 HTTP/1.1" 200 147
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/combo.css?V=1786090605 HTTP/1.1" 200 35
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /pvws/js/pvws.js?V=1786090605 HTTP/1.1" 200 5486
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/scrollbar.js?V=1786090605 HTTP/1.1" 200 1152
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/js/dbwr.js?V=1786090605 HTTP/1.1" 200 22169
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/clock.js?V=1786090605 HTTP/1.1" 200 901
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/xyplot.js?V=1786090605 HTTP/1.1" 200 6185
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/symbol.js?V=1786090605 HTTP/1.1" 200 1065
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/bytemonitor.js?V=1786090605 HTTP/1.1" 200 1361
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/actionbutton.js?V=1786090605 HTTP/1.1" 200 3596
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/databrowser.js?V=1786090605 HTTP/1.1" 200 6373
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/boolbutton.js?V=1786090605 HTTP/1.1" 200 933
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/navtabs.js?V=1786090605 HTTP/1.1" 200 3356
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/tabs.js?V=1786090605 HTTP/1.1" 200 1783
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/led.js?V=1786090605 HTTP/1.1" 200 2963
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/checkbox.js?V=1786090605 HTTP/1.1" 200 1090
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/radio.js?V=1786090605 HTTP/1.1" 200 2473
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/tank.js?V=1786090605 HTTP/1.1" 200 821
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/textupdate.js?V=1786090605 HTTP/1.1" 200 4970
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/slider.js?V=1786090605 HTTP/1.1" 200 999
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/combo.js?V=1786090605 HTTP/1.1" 200 1779
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/textentry.js?V=1786090605 HTTP/1.1" 200 2940
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/picture.js?V=1786090605 HTTP/1.1" 200 755
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/spinner.js?V=1786090605 HTTP/1.1" 200 484
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/image.js?V=1786090605 HTTP/1.1" 200 18304
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/progressbar.js?V=1786090605 HTTP/1.1" 200 541
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/boolmonitor.js?V=1786090605 HTTP/1.1" 200 829
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/multistatemonitor.js?V=1786090605 HTTP/1.1" 200 258
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/widgets/polyline.js?V=1786090605 HTTP/1.1" 200 209
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /dbwr/screen?display=file%3A%2Fopt%2Ftomcat%2Fwebapps%2Fdbwr%2FLCPC%2FCompressorLocal.bob&macros=%7B%7D&cache=true HTTP/1.1" 200 47376
10.20.61.51 - - [07/Aug/2026:13:46:46 +0530] "GET /pvws/pv HTTP/1.1" 101 -
10.20.1.222 - - [07/Aug/2026:13:59:20 +0530] "GET /pvws/pv HTTP/1.1" 101 -

Could you please advise how this issue can be resolved? Specifically, I would appreciate your guidance on 
How to configure DBWR to access image/symbol file used in the .bob.

Your guidance on the recommended configuration would be highly appreciated.

With regards
Vishnu

References:
Display Images on .bob using DBWR Vishnu Patel via Tech-talk

Navigate by Date:
Prev: PVA Gateway performance with large image arrays lvhh--- via Tech-talk
Next: Error building quadEM Jesse Hopkins via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
Navigate by Thread:
Prev: Display Images on .bob using DBWR Vishnu Patel via Tech-talk
Next: PVA Gateway performance with large image arrays lvhh--- via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
ANJ, 07 Aug 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·