Salesforce

How to deploy a webapp and/or services from development to a PASOE production instance

« Go Back

Information

 
TitleHow to deploy a webapp and/or services from development to a PASOE production instance
URL NameHow-to-deploy-a-Web-App-REST-Service-from-development-to-production
Article Number000185825
EnvironmentProduct: OpenEdge
Version: 11.5 , 11.6, 11.7, 12.x
OS: All supported platforms
Other: Progress AppServer for OpenEdge
Question/Problem Description
How to deploy a Web App REST Service from development to production.
How to deploy a PASOE Web App from development to production.
How to deploy a named ABL Web App, REST Webapp or just the Services from development to production
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
There is no answer that handles all situations. There are several ways to move the web application from development to production. The best way to deploy to production will depend on each situation, application and configuration needs. The most common methods are as follows:
  1. If not done so already, create and configure the new production PASOE instance in the same OpenEdge version as documented in the following whitepaper:
  1. Export the REST/ABL WebApp as a named webapp into a WAR archive or deploy just the services as Paar files(Exported in a ZIP) to the existing ROOT webapp:
Progress Developer Studio for OpenEdge: Learn About PAS for OpenEdge, Tasks, Work with ABL WebApp - Export an ABL Service   
https://docs.progress.com/bundle/openedge-developer-studio-help/page/Export-an-ABL-Service.html   
  1. Deploy the WAR WebApp archive to the production PASOE instance. Example:

cd %CATALINA_BASE% (like c:\oework\oepas1)
{Catalina_Base}\bin\tcman deploy -v -u tomcat:tomcat -l -a demoApp <war_file_path>\demoapp.war ablapp1

  1. Alternatively it can be deployed via the OpenEdge Explorer, once the oe manager has been deployed from: <DLC>\servers\pasoe\extras\oemanager.war  
​For a new deployment, never simply copy the .war to the webapps folder as could be done with Classic Rest Services. By doing so, the openedge.properties will not be tailored with the webapp configuration, resulting in subsequent runtime failure. Instead, use Step 3 or 4.​

When deploying only the webapp services to the existing ROOT webapp, steps are outlined in Article: How to export a REST or ABL webapp service from PDSOE to an existing REST application in PASOE  

Important Note: Tomcat has a requirement where a ROOT webapp must exist in order for it to function
  • In PASOE the (Tomcat) ROOT webapp was replaced by our oeabl.war webapp.
  • The ROOT webapp in a PASOE instance is in reality the oeabl.war deployed with the name ROOT, not the original Tomcat ROOT.war, which can also be found under $CATALINA_HOME/extras.
  • Even when a named webapp is deployed as a WAR file the required ROOT webapp must remain deployed. It is a gateway into the application that does not have any default security configured, this would have to be addressed. As an alternative It is possible to undeploy the ROOT webapp and deploy the named webapp as ROOT. Tomcat requirement is that the ROOT webapp exists, regardless of which WAR file is used for deployment.
Other approaches:
  • AppServer only (APSV transport) - if the application is AppServer only then copy the r-code to a newly created instance on the production machine, set PROPATH, db connections, event values in openedge.properties. However consider that in reality the webapp's primary purpose is to provide authentication for a set of ABL services, not simply the service's application code.
  • When the PASOE instance has already been fully configured with all the necessary webapp(s):
  1. ZIP up the current development machine instance,
  2. Copy the compressed archive to the target machine and unzip it
  3. and then to modify the script files and register the instance run:
    <DLC>\servers\pasoe\bin\tcman register <instance-name> <instance-dir>  
An upgrade to OpenEdge 11.6.1 is necessary before running "tcman register" due to some known issues. When packaging and migrating instances make sure the instance is from a PASOE production license as the development license has performance limitations by design. For OE versions 11.6.2 or prior, it is not possible to register a Windows instance in Linux or vice-versa. This is fixed since OpenEdge 11.6.3.
  • To create, build and deploy pasoe web application, with the service's application .p/.r code, authentication & other settings (like which transports are enabled), static images/resources and a set of ABL services (which may be REST, WEB , SOAP or APSV) use ant:
Since OpenEdge 12.2 the jettison-1.2.jar is replaced by jettison-1.4.0.jar, and 1padapters-util.jar is needed for a class needed by REST services
Assure the ${dlcJava} is the OpenEdge install directory $DLC/java folder, not the OpenEdge JDK directory.

Progress Developer Studio, Learn About PAS for OpenEdge, References, Use Apache Ant tasks, Package an ABL WebApp ANT project  
https://docs.progress.com/bundle/openedge-developer-studio-help/page/Package-an-ABL-WebApp-ANT-project.html       
Progress Developer Studio, Learn About PAS for OpenEdge, References, Use Apache Ant tasks, Package REST services  
https://docs.progress.com/bundle/openedge-developer-studio-help/page/Package-REST-services.html    

​​​​​​​
Workaround
Notes
References to Other Documentation:

Migrate Classic AppServer Applications to PAS for OpenEdge, Migrate Server Configuration and Management, Application packaging and installation, Installation process and updates - Install a prepackaged PAS for OpenEdge instance  
https://docs.progress.com/bundle/openedge-migrate-classic-appserver/page/Install-a-prepackaged-PAS-for-OpenEdge-instance.html   
Keyword Phrase
Last Modified Date11/20/2020 6:50 AM

Powered by