dojorequirejsliferayarcgis-js-apijs-amd

Arcgis conflict in Liferay 7.0


I try to use Arcgis javascript API in Liferay 7.0 but it's fail. I think because Liferay 7.0 using requireJS for using javascript which conflict with dojo of Arcgis javascript API. I am using this code for implement Arcgis API:

<script type="text/javascript" src="<%=request.getContextPath() %>/js/arcgis_js_api/library/3.14/3.14/init.js"></script>

<script>
require([
      "esri/map", "dojo/dom" 
    ], function(Map, dom) {

    var map = new esri.Map("map", {
        basemap: "topo",  //For full list of pre-defined basemaps, navigate to http://arcg.is/1JVo6Wd
        center: [-122.45, 37.75], // longitude, latitude
        zoom: 13
      });
});

This is console log:

java.lang.IllegalArgumentException: Path esri/map.js does not start with a "/" character
java.lang.IllegalArgumentException: Path dojo.js does not start with a "/" character

This is javascript error:

Error: defineAlreadyDefined

Anyone has solution help me please. Thanks!


Solution

  • I use this code before implement arcgis (javascript):

    if(typeof define !== "undefined" && typeof require !== "undefined"){
    window.__define = window.define;
    window.__require = window.require;
    window.define = undefined;
    window.require = undefined;}
    

    It will be resolved.