首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Liferay 7.0中的Arcgis冲突

Liferay 7.0中的Arcgis冲突
EN

Stack Overflow用户
提问于 2017-03-23 07:16:23
回答 2查看 293关注 0票数 0

我尝试在Liferay7.0中使用Arcgis javascript,但它失败了。我认为,因为Liferay7.0使用requireJS来使用javascript,这与的dojo冲突。我使用这个代码来实现Arcgis:

代码语言:javascript
代码运行次数:0
运行
复制
<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
      });
});

这是控制台日志:

代码语言:javascript
代码运行次数:0
运行
复制
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

这是javascript错误:

代码语言:javascript
代码运行次数:0
运行
复制
Error: defineAlreadyDefined

任何有解决办法的人请帮帮我。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-19 04:49:07

在实现arcgis (Javascript)之前,我使用此代码:

代码语言:javascript
代码运行次数:0
运行
复制
if(typeof define !== "undefined" && typeof require !== "undefined"){
window.__define = window.define;
window.__require = window.require;
window.define = undefined;
window.require = undefined;}

它将被解决。

票数 -1
EN

Stack Overflow用户

发布于 2017-03-23 08:55:20

正如您提到的Liferay7和脚本标记使用了<%=request.getContextPath()%>一样,您的portlet与servlets之间很可能不匹配:request不知道任何portlet上下文(但仍然存在,因为JSP是为servlet设计的,而且它是一个强制对象,它周围有很多人感到恼火)

您自己的Javascript文件的URL不是相对于上下文根的,但是Liferay使它们在不同的路径上可用。最简单的方法是,在不影响这个位置的情况下,只需提到您希望在portlet配置中包含的文件。在Liferay 7 OSGi portlet模块中,它的工作方式如下(伪代码,简化)

代码语言:javascript
代码运行次数:0
运行
复制
@Component(
    immediate = true,
    property = {
        "com.liferay.portlet.footer-portlet-javascript=/js/main.js",
        "javax.portlet.display-name=My Portlet",
    },
    service = Portlet.class
)

在打包在WAR中的JSR-286 portlet中,您可以在WEB/生发-portlet.xml中使用脚注- portlets值。

或者,使用header-*变体。

我个人更喜欢这种方式,而不是记住资源的路径是如何构建的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42969496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档