I have been researching on how to change the context root for xmlpserver on 11g BI Publisher. Since our application could not use xmlpserver as the context root extension, I would love to come up an approach with the deployment of the same application but with a new context root. This topic is an open question. I have worked out one solution explained in the current article. But I still have not figured out the best approach for the question. Let me know if anyone has any idea for the questions I asked in the article.
As far as I have touched this topic, I tried changing the context root on the fly by modifying the xmlpserver deployment configuration as below:
Login to Application console, and click on the Deployments. You should be able see a list of deployments on the weblogic server. Find the one with name bipublisher, expand the deployment, there is a web application named xmlpserver. Click on that, it will navigate to the settings page of xmlpserver showed in the picture below: (Click on Configuration Tab and navigate to the bottom)
This Context Root is editable and was previously set to be xmlpserver. So I changed it to newContextRoot and save the configuration. However the settings didn’t get picked up during the server restart and it was not working.
I would expect to access http://domain-name:9704/newContextRoot instead of http://domain-name:9704/xmlpserver
Anyone knows why this straightforward approach is not functioning as expected?
My working approach:
Here is what I do for the rest of the steps. I will firstly undeploy the current bipublisher application in enterprise manager and then duplicate a copy of existing xmlpserver.ear with the new name btmreport.ear. Later I modified a few files in btmreport.ear and deploy btmreport.ear with the same name bipublisher under the same target. (This involves a few tricks I found out during the trials and errors. I would explain them in the corresponding steps)
Step 1. Undeploy the current bipublisher application.
Access enterprise manger as below. By default you could access the link: http://Domain-Name:7001/em
Now on the navigation panel find bipublisher and click on Undeploy as below.
Continue the undeployment.
If you run into the same error with me as below, it means the configuration of bifoundation has been locked and you need to go to applicaiton console to release the configuration.
How to release the configuration? Simple! Go to application console. By default you access the link: http://Domain-Name:7001/console
Once login, you should be able to see that there are changes that need to be taken actions in order to unlock the configure on bifoundation domain. I have been trying out other deployments on console. So I just wanted to undo the changes to release the configuration.
After this change, I could proceed on undeploying the application back to enterprise manager.
Now we would need to duplicate a copy from xmlpserver.ear with the name btmreport.ear. And modify two files within the ear file.
xmlpserver.ear location: <BI_middleware_home>/Oracle_BI1/bifoundation/jee/xmlpserver.ear
Now duplicate another ear under the same location: <BI_middleware_home>/Oracle_BI1/bifoundation/jee/btmreport.ear
There are two files to be modified in btmreport.ear:
(MODIFY 1)btmreport.ear\META-INF\application.xml
Change From | Change To |
<display-name>xmlpserver</display-name> | <display-name>btmreport</display-name> |
<context-root>xmlpserver</context-root> | <context-root>btmreport</context-root> |
(MODIFY 2)btmreport.ear\xmlpserver.war\WEB-INF\weblogic.xml
Change From | Change To |
<cookie-path>/xmlpserver</cookie-path> | <cookie-path>/btmreport</cookie-path> |
<context-root>xmlpserver</context-root> | <context-root>btmreport</context-root> |
The reason for changes of these two files could be related to the oracle document : Read More on Web Applications from Oracle Doc
Step 2 Deploy the application under the same name bipublisher. Go to enterprise manager and deploy the application as below:
Input the location of the btmreport.ear. (This could be found in the previous step)
Deploy the application under the same target bi_cluster -> bi_server1
Now we come to the deployment page.
The trick here is to put the name as bipublisher. That is why we have to undeploy bipublisher application firstly. Since it will not allow the same application name being created twice. And the consequence of not using bipulisher as the application deployment name is that you would not be able to have a complete xmlpserver login page(It showed as a blank blue page). I would assume in the BIP software, it is hardcoded somewhere to use bipulisher as the name.
Wait until the deployment finishes successfully, and then validate the new context root(In our case, it should be btmreport)
In order to validate the link, we could go back to application console and take a look at the new deployment details:
Go under the configuration of the deployment btmreport and go to testing to view all the links:
(By default the xmlpserver port should be 9704. In my envrionment, I set it to 9500)
Anyone knows how to keep xmlpserver undeployed but deploy a new btmreport application under bipublisher?