Resources not properly loaded on Oracle BI Web Service - java

I am trying to create a Java + Maven app that uses the Oracle Business Intelligence (BI) Web Service to render an analysis using HTMLViewService. So far I've been using the GO URL without problems, but I want to migrate to Web Services for security reasons.
I am using Oracle Business Intelligence Product Version 12.2 as BI Server and Tomcat 9.0.34 as webserver.
My problem is that the resources are not properly rended/loaded. I can't figure out what I'm doing wrong in my implementation.
TLDR:
Full code and how to reproduce the problem locally on GitHub.
Here is the report displayed directly in the BI server:
And here is the report shown in my application:
As you can see, the dropdown arrow was not displayed, also the CSS for buttons Refresh, Print, Export was not applied. In the console window I got:
Network tab:
Application tab:
It looks like fcustom.css file is directly importing 2 css files: master.css and facustom.css. Also some .png files are missing. The application looks for them directly in the root of our server instead of using the bridge. Why aren't all resources going through the bridge servlet?
I managed to overcome the above problem by manually putting those resources in WebContent folder, but this is a dirty solution and it's still not fully functional. Some analysis still do not render at all, export is giving errors etc. as shown on GitHub.
Any help will be highly appreciated!

Related

HTML Content broken

I have an old web application build in java. So i run this web app with an tomcat 7 server. For authentication im using an IIS 8.5 with single sign-on.
The login and the web app are working fine, but there is one big big problem. I have a overview where a lot of data has to be load. Sometimes the overview is shown correct but the most time the view is broken. Then some entires a missing at the end and sometimes there are entries missing in the middle.
Looks not so much but on the second node there are thousands of entires.
This screen shows the overview when it's loaded complete.
And the following screens are showing the problem:
I thought the entires 8.2 to 8.6 are missing, but they are there:
When i turn off the single sign-on the overview is always correct, but when i activate sso the view is broken to 99%.
I disabled all javascripts but it's broken anyway. So that's not the problem.
Do u have any idea?

Why doesn't Tomcat Server have latest HTML updates?

I'am trying to run this project on my local host.
I followed these instructions on how to launch a dynamic web project on Tomcat Server.
Everything works and when I run the application, I see this which is correct
Now I'am trying to play around with the code a bit. I located the html code that corresponds to the new wine page - /WebContent/tpl/wine-details.html
I changed the country label to show states instead.
However when I re run the web application on the Tomcat Server, the label still says country.
Does anyone know what the issue is? I made sure to save the file. What I also found interesting was there were two copies of this file, in backbone-jax-cellar and backbone-jax-cellar-master. I made sure that both copies contained the states label.
If anyone's having this issue still, I recommend just visiting the URL in a web browser. I used Chrome and everything is showing up fine.
I think the problem here is that Eclipse is somehow caching the html page and doesn't update it when it runs the web app

The module hasn't been compiled yet

I have GWT-Maven project created using IntelliJ. I can build and run it but the browser shows a strange error on home page. How to fix it?
I've tried to create new project and import the existing code but it doesn't help.
Project download: GwtStudy
You need to run it GWT Development mode with Jetty.
The you will get a code server at http://127.0.0.1:9876/
and a web server at: http://127.0.0.1:8888/yourapp.html
See also this video: https://www.youtube.com/watch?v=kx9RxrQZnFA
The tutorial is slightly misleading. You need to run the app by choosing "GWT Development mode with Jetty" and not "GWT development mode" as one may believe following the tutorial (the super dev mode is the standard nowadays).
If you run the app using "GWT development mode" you will start only the code server, that will run the java code, but it will not be able to serve the html page that hosts the stockwatcher application.
If you run it with "GWT Development mode with Jetty" you will get a code server at http://127.0.0.1:9876/ AND the web server at: http://127.0.0.1:8888/stockwatcher.html, that is the URL that you need to open with your browser to see the page that hosts the app (you can see that the docs shows the browser opening the url at port 8888 and not at port 9876).
The answer of Jankos is right but for me it was not enough clear. The video is not strictly needed or related to solve the issue, so I added this answer to help gwt beginners like me.
This is the CodeServer, which compiles your app on-demand, and serves the compiled scripts and their source maps.
You need another web server to serve your webapp, including most importantly an html page that includes the nocache.js script.
Depending on how you "run" your app this may or may not already be the case (you'd need to give more information).

Website development and testing in Eclipse and Tomcat: javascript is cached

I'm developing a web application with jsp pages in Eclipse 3.7.2 and testing it with Tomcat v6.0.
I've almost the perfect environment as all changes to my jsp or java code are immediately available in the browser within Eclipse, so I can directly test any change.
But... I also use jQuery, who isn't ;-), and changes in my javascript files are not immediately active. Looks like they are cached or copied once and don't get replaced. Even after rebuilding or restarting the tomcat, the old files keep being used.
Any ideas on how to solve this?
Thanks a lot,
Frank
If you are using firebug in your browser, you can switch off the caching by default without adding code to your page:
click the arrow on the right side of the Networking button and select the disable browser cache option.
The files are probably cached by the browser.
ctrl-F5 might help but if you can configure the server to set no cache for js and css that should also help.
Another solution is to load all such files through a loader,
/load.<site extension, ex php>?file=myscript.js
And have that "proxy" set no cache.
We use that along with e-tag to be able to use build number as e-tag, vith every build a new version is forced to clients but then cached until next build.

deployment time of "ear" annoying using jboss,ant, jsp's and prehistoric pc

I am developing a web based java app, running on jboss and sql server.
I seem to find myself spending an inordinate amount of time recompiling/deploying just to tweak the interface in jquery/javascript/css/html.
Any tips for reducing the turnaround ?
Its deployed to an ear file, so I can not alter the jsps/javascript after deployment(?). Yes, I have created the a static version of the webpage frontends but they do not give me the full functionality - none of the data from db/jstl processing.
To clarify its not so much the actual compile time itself (30seconds) as the ant builds are set-uo well and are very modular; its the subsequent deployment to jboss and accessing the application that cause the real headache.
If you do not work directly in an exploded war inside the hotdeploy folder of JBoss, then strongly consider it.
when developing with application server i've used this product in the past: JRebel from zeroturnaround.
It will prevent having to restart and redeploy an application running within an application server. It works for most scenario's however i found that there were a few occasions when a server restart were required(in my case making changes to the application initialisation). But if you're only working on the interface this product will save you a great number of deployments and restarts.
I have not used Jrebel in combination with JBoss but they mention it as a supported container so thta shouldn't be a problem.
I am an average web designer (at best!) and writing complicated HTML and CSS is a pain for me. A lot of what I do with styles and layout is trial and error and involves a lot of tweaking. I also change my mind frequently about exactly what shade of color I want things. Basically, I'm in the same boat as you.
Long ago I abandoned the idea of the tweak-deploy-test iteration cycle (mvn clean tomcat:deploy takes 2 minutes on my current project) as by the 10th iteration trying to sort a simple layout problem and waiting for the deployment would drive me round the bend. I now use two strategies;
Get a static copy of the HTML I want to work with. This usually means deploying the app, navigating to the page and saving it to a work directory somewhere. This saves the static HTML as well as any images. Next I copy the CSS files from my workspace into the work directory and hand edit the saved HTML file to point to these CSS files.
Open the static HTML page in Firefox. Now I can tweak the CSS or HTML and simply refresh Firefox to show the changes. Iteration time is now down to about 1 second. I can further improve my tweaking using the Firebug addon. This allows you to manipulate the CSS and HTML from within Firefox. This is especially useful for getting margin and padding size right. Once I've tweaked it in Firebug I hand edit the saved HTML and CSS then refresh Firefox to make sure I'm happy with the result.
At certain key stages I then make the changes to my workspace to reflect my tweaking on the static files. I then redeploy and test to make sure I got it right. As I use Firefox for all my development I have to pay special attention to browser compatibility, especially with IE, but this usually comes at a later stage.
Edit:
I didn't mention Javascript, but this process works great for JS too!

Categories