- 浏览: 165220 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
Aceslup:
好复杂的说
Redis集群方案 -
fuzhaohui:
通过不段的调试发现是ngix版本过低的原因,CentOS自动安 ...
Jenkins通过nginx远程部署应用发布报错 -
smallestmonkey:
...
realvnc 4.6 企业版序列号 for linux & windows -
fuzhaohui:
引起这个报错原因是因为引用mybatis-spring版本过高 ...
Spring4.0.5+MyBatis3.2.7+mybatis-spring 1.2.2插入数据所所异常 -
cbxjj:
果然是酷狗这个狗东西
python测试django系统出现 Error: [Errno 10013]
liferay ext访问portlet底层数据库6.0.6bug官方解决方案
Description
The code generated by the service builder was not working. We
get a null pointer exception when calling a service method at the
generated façade. The generated code contains logical errors:
The MethodKey member variables in the *ServiceClp-classes are implicitly
initialized while making use of the ClassLoaderProxy member variable
which is initialized by the constructor. The implicit initializations of
the MethodKey members are done before the ClassLoaderProxy member is
set by the constructor. Unfortunately during the MethodKey member
initialization the ClassLoaderProxy member is being accessed which
results in the null pointer. See the corresponding template file for a
fix (service_clp.ftl).
After this modification the null pointer was gone but replaced by a ClassNotFoundException. The message of the exception said something like "Class $Proxy271 not found". The problem is located in the generated *ServiceUtil-class. The ClassLoaderProxy instance is created with a deprecated constructor which takes the service façade object and the portlet class loader. Internally the constructor took the class name from the service façade object with getClass().getName(). I supposed that this was the reason for the weird class name "$Proxy271" (probably because it is an implementation class name and the class is a proxy generated by Spring-AOP).
However, to fix this I used the non-deprecated constructor (where the
class name can be specified) and set the service façade interface class
name. I've attached the fixed template file (service_util.ftl).
Though I wasn't sure if this would work - after this modification everything seemed to work fine.
Attachments
-
- service_clp.ftl
- 08/Oct/10 8:02 AM
- 3 kB
-
- service_util.ftl
- 08/Oct/10 8:02 AM
- 4 kB
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
- Test Sessions
Hi,
can you please explain how I should use thiese .ftl file to avoid the
problem? I get NullPointerException when trying to call a method of my
xxxLocalServiceUtil in another plug-in.
Pretty much the same as your issue, except I don't receive Class $Proxy271 not found (yet!).
Thanks for the help!
Hi Puj,
you have two options for this:
1. If you have the portal sources then copy the attached template files in directory (replacing the old ones ):
<location of the portal source>/portal/portal-impl/src/com/liferay/portal/tools/servicebuilder/dependencies
Then build the portal-impl.jar
2. If you don't have the portal sources locate the portal-impl.jar in your portal installation (what your Liferay-SDK is configured to - see app.server.dir property in your build.properties file). You will find it in the portal web-app in WEB-INF/lib. E.g. for Tomcat-bundle in <tomcat>/webapps/ROOT/WEB-INF/lib. Then unpack the jar to some temp location. Replace the templates which are located in classes/com/liferay/portal/tools/servicebuilder/dependencies. Repack the portal-impl.jar.
Finally replace the portal-impl.jar in the portal web-app WEB-INF/lib directory.
Then it should work (for me it did ).
HTH
Regards,
Frank.
I ran into the exact same situation NPE (which I narrowed it down to the "Implicit MethodKey member initialization in the *serviceclp.java generated by Service Builder) followed by the $Proxy271 not found exception. Modifying the template files (as suggested above) solved the problem.
Regards,
Seshendra
Hi David,
Has your issue been resolved by the files in the attachment?
Otherwise, please provide additional information based on the
information found in our JIRA reporting wiki (http://www.liferay.com/community/wiki/-/wiki/1071674/JIRA/maximized
) Thanks!
Hallo Kristoffer,
yes, the supplied files fix the issue in the concrete case (the files came from us as an aid to fixing the bug).
Regards,
David
Hello David,
It's good to hear that your issue has been resolved. I will close
this ticket as fixed then. Thank you for reporting the issue.
I have the same problem, but the fix does not work for me
I'm on LR 6.0.5 GA (rev 60396)
Im using the portal source files, so I replaced the 2 files you provided.
Then I recompiled the portal, I generated my service and deployed it,
and then I started the portal, but I still have the same issue :
16:34:14,095 ERROR [jsp:154]
java.lang.NullPointerException
at blabla.model.service.LDAPEtudiantLocalServiceClp.<init>(LDAPEtudiantLocalServiceClp.java:398)
at blabla.model.service.LDAPEtudiantLocalServiceUtil.getService(LDAPEtudiantLocalServiceUtil.java:244)
at blabla.model.service.LDAPEtudiantLocalServiceUtil.getLDAPEtudiant(LDAPEtudiantLocalServiceUtil.java:170)
Did I try to fix it in the right way ?
This Issue is not fixed, the files that we supplied fix the *concrete * case. As soon as you regenerate, the problem is back again.
Nevermind, finally it's working very well
Thx for the fix !
I'm using 6.0.6 and I have the same problem and the fix doesn't work. I substituted the files in portal source, I built portal-impl.jar and I deployed it in ROOT/WEB-INF/lib. What it means as soon as I regenerate the problem is back againg? Regenerate what? The portlet plugin that provides services (using service builder) or the plugin that uses services?
The problem still exists on 6.0.6. After I replaced attached .tpl files I got below errors.
15:16:54,687 ERROR [BasePersistenceImpl:182]
Caught unexpected exception java.lang.NullPointerException
com.liferay.portal.kernel.exception.SystemException: java.lang.NullPointerException
at com.liferay.portal.service.persistence.impl.BasePersistenceImpl.processException(BasePersistenceImpl.java:189)
at com.etravel.hotel.service.persistence.HotelPersistenceImpl.findAll(HotelPersistenceImpl.java:449)
at com.etravel.hotel.service.persistence.HotelPersistenceImpl.findAll(HotelPersistenceImpl.java:385)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
at com.liferay.portal.dao.shard.ShardAdvice.invokePersistence(ShardAdvice.java:205)
at sun.reflect.GeneratedMethodAccessor296.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy357.findAll(Unknown Source)
at com.etravel.hotel.service.base.HotelLocalServiceBaseImpl.getHotels(HotelLocalServiceBaseImpl.java:212)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at
com.liferay.portal.dao.jdbc.aop.DynamicDataSourceTransactionInterceptor.invoke(DynamicDataSourceTransactionInterceptor.java:44)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:58)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:58)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:58)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy355.getHotels(Unknown Source)
at com.etravel.hotel.service.impl.HotelServiceImpl.getMyHotels(HotelServiceImpl.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at
com.liferay.portal.dao.jdbc.aop.DynamicDataSourceTransactionInterceptor.invoke(DynamicDataSourceTransactionInterceptor.java:44)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:58)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:58)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:58)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy356.getMyHotels(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.liferay.portal.kernel.util.MethodHandler.invoke(MethodHandler.java:81)
at com.liferay.portal.kernel.util.ClassLoaderProxy.invoke(ClassLoaderProxy.java:67)
at com.etravel.hotel.service.HotelServiceClp.getMyHotels(HotelServiceClp.java:40)
at com.etravel.hotel.service.HotelServiceUtil.getMyHotels(HotelServiceUtil.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.liferay.portal.action.JSONServiceAction.getJSON(JSONServiceAction.java:120)
at com.liferay.portal.struts.JSONAction.execute(JSONAction.java:49)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:152)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:508)
at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:485)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:261)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.themepreview.ThemePreviewFilter.processFilter(ThemePreviewFilter.java:88)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:126)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:182)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:81)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:179)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:239)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
at com.liferay.portal.servlet.filters.threadlocal.ThreadLocalFilter.processFilter(ThreadLocalFilter.java:35)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge.nextTimestamp(RegionFactoryCacheProviderBridge.java:93)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:650)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:659)
at org.springframework.orm.hibernate3.SessionFactoryUtils.doGetSession(SessionFactoryUtils.java:318)
at org.springframework.orm.hibernate3.SessionFactoryUtils.doGetSession(SessionFactoryUtils.java:256)
at org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:60)
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:698)
at com.liferay.portal.dao.orm.hibernate.SessionFactoryImpl.openSession(SessionFactoryImpl.java:59)
at com.liferay.portal.service.persistence.impl.BasePersistenceImpl.openSession(BasePersistenceImpl.java:177)
at com.etravel.hotel.service.persistence.HotelPersistenceImpl.findAll(HotelPersistenceImpl.java:433)
... 152 more
Hello,
I'm using LR 6.0.6 CE.
I'm encountering into the issue described by David.
Context : I have two portlets. One creating services and another consuming them.
Error : Exactly what you describe in your post.
Well, I’ve apply the solution by packaging the portal-impl.jar with the new versions of service_util.ftl and service_clp.ftl. I’ve now access to the share services in the second portlet. However, a new issue has come. Anytime I want to save an entity in the first portlet (an operation that worked before), I got an NoSuchMethodException. But, the method exist, and with the right signature. Here is an excerpt of the log exception :
java.lang.NoSuchMethodException: com.alti.cnp.service.SinistreLocalServiceUtil.updateSinistre(com.alti.cnp.model.Sinistre)
at java.lang.Class.getMethod(Class.java:1605)
at com.liferay.portal.kernel.util.MethodCache._get(MethodCache.java:107)
Any help would be greatly appreciate.
Thanks
Your NoSuchMethodException should disappear if you make sure that your service builder jar file is either:
1. under your lib/ext directory (talking Tomcat here - anyway your
appserver shared lib directory), AND removed from your WEB-INF/lib
directory of your service builder webapp.
OR 2. under the WEB-INF/lib directory of all of your web apps (including the portlet web app)
I haven't tried the second method but the first one definitely worked
for me. Got this info from another Liferay forum or blog post but I
can't remember where to give you the link.
发表评论
-
CentOS安装Openldap
2013-03-19 16:37 2213[1] Install OpenLDAP [ ... -
webdrive10
2012-05-21 09:32 864liferay文档库webdev链接工具 -
webdrive
2012-05-21 09:09 774一个非常优秀的SSH Ftp工具 -
glassfish启动报错
2012-04-20 18:28 1857Liferay glassfish启动错误 [#|2 ... -
glashfish redhat enterprise 5.5 启动
2011-11-17 13:56 1042================glassfish.sh=== ... -
LDAP Redhat Enterprise Linux安装
2011-11-15 10:00 1678LDAP Redhat ... -
liferay6.0.6 src glashfish打包
2011-11-14 17:20 1321liferay包含有提供了许多种服务器中间件,如何通过life ... -
liferay + ext插件时 外部集成webservice异常
2011-11-14 11:07 1001异常: AxisFault faultCode: {ht ...
相关推荐
Liferay跨页面Portlet之间的调用与数据传递,Portlet之间的通信方法有多种,比如PortletSession,Public Render Parameter,Portlet event等。但是这些方法使用起来都很复杂,像Public Render Parameter和event等,...
Liferay-Portlet-SDK 5.2.3操作说明.ppt
Liferay5.2.3的样例,通过war.bat打包后发布到相应的liferay环境即可。 另外,需要配置context,tomcat中的代码如下: </Context>
liferay portlet例子 liferay portlet例子
可供参考的liferay开发的portlet示例工程,学习参考的简单示例
liferay portlet 开发的例子介绍
使用struts1.X实现了liferay portlet插件。
liferay ext开发环境搭建,讲解清晰。适应初学者看。
NULL 博文链接:https://jyao.iteye.com/blog/608529
Liferay Spring Portlet MVC 使用 Maven 的 Liferay Spring Portlet MVC 项目模板。 Liferay EE 6.2.10.11 (GA1, SP710) Java 1.7 小门户 2.0 弹簧框架 4.1.5 基于注解的控制器配置 用法 $ git clone ...
详解portlet技术,是帮助你学习进步的好助手哦。快来下载吧
博文链接:https://arkxu.iteye.com/blog/222933
liferay-portlet-development
liferay ,ext基本配置方法.txt
liferay_4_portlet
这个版本会有变化。需要版本对应 如果版本不对,还需自己下载相对版本
一个Liferay Soy Portlet使用web service进行可视化数据的实例。
自定义登录portlet Liferay 自定义登录 Portlet。 网址:tariqliferay.blogspot.com
liferay portlet demo
自己研究出来的spring-portlet的一个war包,放在liferay里面直接可以运行,下次再把hibernate加进来,我花了两天的代价,希望大家能理解这个10分,呵呵