Table of Contents

GlassFish context path za EAR aplikacije

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.

Posle snimanja application.xml fajla, mora se restartovati glassfish instanca.

Sadržaj application.xml 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>Naziv-cele-aplikacije</application-name>
  <display-name>Željeni-naziv-za-prikaz</display-name>
  <module>
    <web>
      <!-- aplikacija za koju se menja context path, mora biti .war-->
      <web-uri>Tačan-naziv-war-dela.war</web-uri>
      <!-- ovde se menja context path -->
      <context-root>/željeni/context/path</context-root>
    </web>
  </module>
  <!-- ako ima vise modula -->]
  <!--<module>
    <web>
      <web-uri>Drugi-war.war</web-uri>
      <context-root>/željeni/context/path/za/drugi/war</context-root>
    </web>
  </module>-->
  <module>
    <!-- za ovaj tip aplikacije nema context path-a -->
    <ejb>Ovde-ide-tačan-bekend-naziv.jar</ejb>
  </module>
  <library-directory>lib</library-directory>
</application>

Rešenje nadjeno na https://stackoverflow.com/questions/39246145/change-context-path-of-an-entreprise-application-ear-in-glassfish