This is an old revision of the document!
Instalacija i podešavanje Balans WEB API servisa
Komponente sistema
- PostgreSQL >9.3
- GlassFish 4 Full Platform + JDK 7 (ili više)
- BOR.war, ime aplikacije BortApp (context root takođe)
- Pokrenuti skript za izradu baze
Promena context path aplikacija
Opis problema
Podrazumevano, Glassfish uzima naziv projekta za URL putanje posle servera (primer: http://www.host.com:8080/naziv-projekta /neki-API) i prilikom instalacije aplikacije u svoju instancu (domen) ne nudi opciju da se ovo promeni (sa izuzerkom čiste Web aplikaijce, .war).
Ovo onemogućava da se ista Enterprise aplikacija (.ear koji sadrži web deo, .war) instalira više puta na istoj GF instanici (domenu). Iako bi ime aplikacije bilo promenjeno prilikom instalacije (što je i obaveza), to ne utiče na context path war dela.
Rešenje
Nakon instalacije (deploy), otvoriti folder aplikacije u folderu domena i u META-INF folderu napraviti fajl naziva application.xml. primer: …/domain1/MojaAplikacija/META-INF/application.xml.
Sadržaj fajla je sledeći:
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6"> <application-name>BORT_EAR</application-name> <display-name>Balans Online Retail</display-name> <module> <web> <!-- aplikacija za koju se menja context path, mora biti .war--> <web-uri>BortApp-war.war</web-uri> <!-- ovde se menja context path --> <context-root>/BortApp-war</context-root> </web> </module> <!-- ako ima vise modula -->] <!--<module> <web> <web-uri>another-war-file.war</web-uri> <context-root>/another/context/for/the/second/war/file</context-root> </web> </module>--> <module> <!-- za ovaj tip aplikacije nema context path-a --> <ejb>BortApp-ejb.jar</ejb> </module> <library-directory>lib</library-directory> </application>