Openseadragon not displaying newly ingested JP2s

256 views
Skip to first unread message

gavin....@commonmediainc.com

unread,
May 14, 2015, 2:17:43 PM5/14/15
to isla...@googlegroups.com
Hello Everyone, 

We are stuck trying to get Openseadragon to display images ingested via the large image solution pack. 

We have managed to get the ingest to produce a valid JP2 datastream - at least exiftool reports that it is a JP2 file, and it opens and displays fine

Within Islandora, we ingest a TIF file through the Large Image Datastream to a collection called temporary collection. 

The ingest works, the JP2 derivatives are confirmed as created (inspected in exiftool) BUT the resulting JP2 image is not displayed in openseadragon.

Using Chrome Developer tools, we inspect the network console log and when we try to view the object with islandora/openseadragon, the adore-djatoka/resolver request is returning a 404. 

When we check /usr/share/tomcat/logs/djatoka.log on the separate Fedora Server:  we see RenderOp errors amongst other things.
(see Sample output from djatoka_log: section below) (server name is sanitized)

JP2 datastreams on other objects that were ingested prior to the Fedora 3.5 to 3.8 repo upgrade are displaying correctly. 

We have been chasing various leads for a few days. 

One that might be significant is that large images migrated from the pre-upgrade (Fedora 3.5) repo, when inspected in exiftool, show a number of xml compression attributes, whereas the test images we are testing do not.

So the most likely theory would seem to be that there is something not right about the JP2s that we are generating now, and perhaps this is a kakadu setting we haven't got right?

Technical background:

Please note: 3 servers in total, all Red Hat

1 x Web Server: Islandora 7.1.4 is on a Red Hat server running Apache 2.2, PHP 5.4, Drupla 7.36

1 x DB Server: MySQL is running 5.5 on a Red Hat server

1 x Fedora Server:  Fedora Commons 3.8 is on a Red Hat server running Tomcat 7.0, Oracle Java JDK 1.75, Adore-Djatoka 1.1 with Kakadu

———————————

Sample Environmental Variables on Fedora Server: (location: /etc/profile.d/fedora_env.sh)

export FEDORA_HOME=/usr/local/fedora
export JAVA_HOME=/opt/jdk1.7.0_75/
export JRE_HOME=/opt/jdk1.7.0_75/jre
export CATALINA_HOME=/usr/share/tomcat
export JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=128m -Djavax.net.ssl.trustStore=/usr/local/fedora/server/truststore
-Djavax.net.ssl.trustStorePassword=tomcat"
export PATH="$PATH:$FEDORA_HOME/server/bin:$FEDORA_HOME/client/bin"
export PATH=$PATH:/opt/jdk1.7.0_75/bin:/opt/jdk1.7.0_75/jre/bin
export KAKADU_LIBRARY_PATH=/opt/adore-djatoka-1.1/lib/Linux-x86-64
export KAKADU_HOME=/opt/adore-djatoka-1.1/bin/Linux-x86-64

Sample output from djatoka_log:

2015-05-08 12:46:33,155 envParams: LD_LIBRARY_PATH=/opt/adore-djatoka-1.1/lib/Linux-x86-64 | /opt/adore-djatoka-1.1/bin/Linux-x86-64/kdu_compress
2015-05-08 12:46:33,171 Reading the file using ImageJReader
2015-05-08 12:46:33,945 gov.lanl.adore.djatoka.DjatokaException: gov.lanl.adore.djatoka.DjatokaException: java.lang.RuntimeException: - Unable to render RenderedOp for this operation.
gov.lanl.adore.djatoka.DjatokaException: gov.lanl.adore.djatoka.DjatokaException: java.lang.RuntimeException: - Unable to render RenderedOp for this operation.
        at gov.lanl.adore.djatoka.openurl.DjatokaImageMigrator.convert(DjatokaImageMigrator.java:136)
        at gov.lanl.adore.djatoka.openurl.SimpleListResolver.getImageRecord(SimpleListResolver.java:100)
        at gov.lanl.adore.djatoka.openurl.SimpleListResolver.getImageRecord(SimpleListResolver.java:75)
        at gov.lanl.adore.djatoka.openurl.ReferentManager.getImageRecord(ReferentManager.java:70)
        at gov.lanl.adore.djatoka.openurl.OpenURLJP2KMetadata.resolve(OpenURLJP2KMetadata.java:115)
        at org.oclc.oomRef.OpenURLRequestProcessorImpl.resolve(OpenURLRequestProcessorImpl.java:82)
        at gov.lanl.adore.djatoka.openurl.OpenURLServlet.doGet(OpenURLServlet.java:121)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

gavin....@commonmediainc.com

unread,
May 18, 2015, 8:52:53 AM5/18/15
to isla...@googlegroups.com
Appears this issue may have happened to others: https://groups.google.com/forum/#!topic/islandora/Kj2HgsiCGQU

gavin....@commonmediainc.com

unread,
May 18, 2015, 11:05:13 AM5/18/15
to isla...@googlegroups.com
I'm now seeing this error within the Chrome> Developer tools> Network>console

XMLHttpRequest cannot load http://fedora-server.domain.com:8080/adore-djatoka/?url_ver=Z39.88-2004&…539ba3c8a5efda45b798bd3819fc91&svc_id=info%3Alanl-repo%2Fsvc%2FgetMetadata. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://islandora.domain.com' is therefore not allowed access.

Is this related to the Reverse proxy?


On Thursday, May 14, 2015 at 2:17:43 PM UTC-4, gavin....@commonmediainc.com wrote:

Jared Whiklo

unread,
Jun 15, 2015, 1:31:55 PM6/15/15
to isla...@googlegroups.com
This looks like a problem with your ProxyPass lines and your OpenSeadragon setup.

Your browser should be calling out to http://islandora.domain.com/adore-djatoka/resolver?....

Do you have the lines 
----
  ProxyPreserveHost On
  <Proxy \*>
    Order deny,allow
    Allow from all
  </Proxy>

ProxyPass /adore-djatoka http://localhost:8080/adore-djatoka
ProxyPassReverse /adore-djatoka http://localhost:8080/adore-djatoka
----
in your Apache configuration?

Then in your Islandora -> Islandora Viewers -> OpenSeadragon config page, you should be able to use "/adore-djatoka/resolver" as the Djatoka server base url.
Reply all
Reply to author
Forward
0 new messages