标签: liferay

测试自定义插件portlet:BeanLocatorException和Transaction roll-back用于服务测试

我的问题:

  1. 我可以成功测试CRUD服务操作.我是做对@Before [设置()]插入和@After同一数据的删除[拆解()],但展望未来,我需要支持的交易,而不是插入和删除编写代码.
  2. 我成功获取了我的实体的单个记录,但是当我触发搜索查询或尝试获取多个实体时,我得到:

    com.liferay.portal.kernel.bean.BeanLocatorException:尚未为servlet上下文设置BeanLocator MyCustom-portlet

我已经按照以下一些链接来设置Junit与Liferay:

我的环境

  • Liferay 6.0.5 EE与Tomcat捆绑在一起

  • 带有Liferay IDE 1.4的Eclipse Helios使用Junit4

  • 我在eclipse中使用"ant"命令运行我的测试,但不是通过输入Alt+ Shift+ X, T.

这将是非常有益的,如果我能得到一些想法,如何去使用的交易使用JUnit(或至少一些想法,它是如何工作的Liferay),以及如何解决BeanLocatorException(或者至少是为什么会被抛出)

任何帮助将不胜感激.

java junit liferay junit4 liferay-6

10
推荐指数
1
解决办法
4637
查看次数

为什么settimeout没有延迟函数执行?

function tryToDownload(url)
{

       oIFrm = document.getElementById('myIFrm');
       oIFrm.src = url;
      // alert(url);
      // url=escape(url);

      setTimeout(deletefile(url), 25000); 
}
Run Code Online (Sandbox Code Playgroud)

以下是deletfile函数

function deletefile(url){

$.ajax({
    type:'post',
    url: "<%= addToDoDeleteDownloadFile %>",
    data:{filename:url},
    type : "GET",
    timeout : 20000,
    dataType : "text",
    success : function(data) {
        alert("success");

    }
    });
}
Run Code Online (Sandbox Code Playgroud)

上面是我的jQuery和我在25秒后调用一个函数,但有些如何不延迟deletefile(url)函数并执行刚刚执行.所以应该是什么问题?

javascript ajax jquery settimeout liferay

10
推荐指数
1
解决办法
943
查看次数

Liferay中导出和导入的步骤

我使用eclipse IDE在Liferay中构建了一个网站.

请告诉我从开发机器到部署机器的导出/导入或发布网站的一步一步程序..

谢谢

publish export liferay

9
推荐指数
1
解决办法
1万
查看次数

在力度模板中创建对象

我正在为我的liferay主题编写速度模板,我想知道是否可以在速度模板中创建一个新对象.

原因是在liferay中没有在上下文中注册的contextTool,我真的希望能够在给定时间检查模板中存在的变量.有一个很酷的宏,但不幸的是它使用了contexttool.

我想做点什么:

#set($contextTool = new ContextTool())
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是随生命线主题提供的java代码,该主题能够在模板上下文中添加内容.但我不知道这是怎么回事...... ;-)

velocity liferay liferay-velocity

9
推荐指数
1
解决办法
8591
查看次数

是否可以在Liferay中的"创建用户"下添加"额外字段"

我正在使用Liferay 6进行门户开发.在Liferay下创建用户期间,我还需要添加一些额外的字段吗?如果这是可能的,请告诉我?

请看这里附的屏幕截图,也请告诉我哪个表格会存放在数据库中?

在此输入图像描述

liferay liferay-6

9
推荐指数
2
解决办法
9933
查看次数

如何在Liferay中使用portlet名称获取Portlet Id?

我需要使用portlet名称获取资源权限.

我将使用portlet的名称而不是Id.

portlet的资源许可权名称是该portlet的Id.我检查了Portlet表,它只有Id和其他信息.portlet的其他属性将保存在哪里?

有没有办法通过使用portlet的名称来获取portlet的Id.我有一个workaroud来获取所有portlet并进行比较,但如果我可以使用portlet的名称直接获取portlet的Id,那将会很有帮助.

它的紧急,如果有人知道请回复,这将是非常有帮助的.

提前致谢

portlet liferay liferay-6

9
推荐指数
2
解决办法
2万
查看次数

如何使用service.xml或Service Builder设置字符串列的大小?

前历史:我data exception: string data, right truncation在更新实体时遇到JDBCExceptionReporter 异常.

我发现这意味着,数据对于指定来说太大了varchar.

service.xml列中指定如下:

<column name="message" type="String"/>
Run Code Online (Sandbox Code Playgroud)

我在Liferay的源代码中找到了ServiceBuilder这个片段:

else if (colType.equals("String")) {
    Map<String, String> hints = ModelHintsUtil.getHints(
        _packagePath + ".model." + entity.getName(), colName);

    int maxLength = 75;

    if (hints != null) {
        maxLength = GetterUtil.getInteger(
            hints.get("max-length"), maxLength);
    }

    if (col.isLocalized()) {
        maxLength = 4000;
    }

    if (maxLength < 4000) {
        sb.append("VARCHAR(" + maxLength + ")");
    }
    else if (maxLength == 4000) {
        sb.append("STRING");
    }
    else if (maxLength …
Run Code Online (Sandbox Code Playgroud)

size service liferay

9
推荐指数
1
解决办法
7391
查看次数

在Liferay Theme中包含jQuery和其他JS文件

我使用Liferay 6.1,我创建了我的主题(sample-theme),我想要添加jQuery.我怎样才能做到这一点?

为什么我有文件夹:sample-theme并且liferay-work都有文件夹:css,js,templates?

我创建了文件夹_diffs和子文件夹,js然后复制jQuery并添加portal_normal.vm:

<script src="/html/js/jquery/jquery-1.8.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

我没有看到任何变化,为什么?我怎样才能添加jQuery?不仅是单个portlet,而且是所有人.


我没有文件夹docroot我使用Maven并且在src/main/webapp中我创建了文件夹_diffs和文件夹js,在那里我添加了jquery.js并在_diffs中创建了模板文件夹并粘贴:

<script src="$javascript_folder/jquery-1.8.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

但仍然是错的.也许文件夹_diffs应该在另一个地方?什么应该是maven项目的结构?

jquery liferay liferay-6 liferay-theme

9
推荐指数
2
解决办法
1万
查看次数

Liferay初创公司需要太长时间

我是Liferay开发的新手,我在Liferay Tomcat服务器启动时遇到了麻烦.这需要将近3分钟(169048毫秒),这对于开发来说是不可接受的.我想把它降到一分钟左右.

这是我的机器的规格:

  • 英特尔酷睿双核T2300 @ 1.66GHz
  • 4GB RAM(使用3.24GB)
  • 带有Service Pack 1的Windows 7 Enterprise 32位

我正在使用:

  • Liferay 6.1.1-ce-ga2与Tomcat 7捆绑在一起
  • Eclipse IDE Juno发布

为了加快速度,我做了:

  • 从tomcat\webapps文件夹中删除了所有不必要的portlet.
  • 将Tomcat本机库1.1.24放在tomcat\bin文件夹中
  • 调整了我的portal-ext.properties,如下所示
     #disable some filters  
     com.liferay.portal.servlet.filters.sso.cas.CASFilter       = false
     com.liferay.portal.servlet.filters.sso.ntlm.NtlmFilter     = false
     com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter = false
     com.liferay.portal.servlet.filters.sso.opensso.OpenSSOFilter= false
     com.liferay.portal.sharepoint.SharepointFilter             = false
     com.liferay.portal.servlet.filters.gzip.GZipFilter         = false

     #disable indexing  
     index.on.startup=false

这是我的启动日志:


    Jan 30, 2013 8:39:49 AM org.apache.catalina.core.AprLifecycleListener init
    INFO: Loaded APR based Apache Tomcat Native library 1.1.24.
    Jan 30, 2013 8:39:49 AM org.apache.catalina.core.AprLifecycleListener init
    INFO: APR capabilities: IPv6 [true], sendfile [true], accept …

performance startup liferay

9
推荐指数
1
解决办法
1万
查看次数

使用portlet中的json对象响应http请求

我是liferay portlet开发的初学者,我正在开发一个接收http get请求的portlet,处理一些信息,而不是返回一个json对象.我的问题是我的portlet发送了一个完整的html页面,而不仅仅是json对象.这是我的代码:

HttpServletResponse servletResponse = PortalUtil.getHttpServletResponse((renderResponse));

            servletResponse.setHeader("Content-type", "application/json");
            servletResponse.setCharacterEncoding("application/json");
            PrintWriter out = servletResponse.getWriter();
            out.write(EntityUtils.toString(responseEntity));


            out.flush();
            out.close();
Run Code Online (Sandbox Code Playgroud)

我在doView()方法中执行它,我知道这不是最好的做法,但我现在并不关心这一点.有人可以向我解释如何只返回我读过有关serveResponse的json对象,但我无法弄清楚如何调用它.

json portlet httprequest liferay

9
推荐指数
1
解决办法
9244
查看次数