- 浏览: 168554 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 2267[1] Install OpenLDAP [ ... -
webdrive10
2012-05-21 09:32 899liferay文档库webdev链接工具 -
webdrive
2012-05-21 09:09 810一个非常优秀的SSH Ftp工具 -
glassfish启动报错
2012-04-20 18:28 1891Liferay glassfish启动错误 [#|2 ... -
glashfish redhat enterprise 5.5 启动
2011-11-17 13:56 1089================glassfish.sh=== ... -
LDAP Redhat Enterprise Linux安装
2011-11-15 10:00 1725LDAP Redhat ... -
liferay6.0.6 src glashfish打包
2011-11-14 17:20 1381liferay包含有提供了许多种服务器中间件,如何通过life ... -
liferay + ext插件时 外部集成webservice异常
2011-11-14 11:07 1034异常: AxisFault faultCode: {ht ...
相关推荐
在Liferay中,跨页面Portlet之间的调用与数据传递是一项关键任务,因为这涉及到不同Portlet间的协作和信息共享。Liferay提供了多种通信机制,包括PortletSession、Public Render Parameters以及Portlet事件,但这些...
Liferay Ext允许开发者在不修改核心代码的情况下对Liferay进行高级定制,这包括添加新的portlet、服务、主题以及系统级别的配置。 描述中提到的链接指向了一篇博客文章,虽然内容未提供,但通常这类资源会包含有关...
- **类库**:SDK提供了所有必要的jar文件,包括Liferay Portal服务API、Portlet API和JSP标签库等,这些都是开发portlet所必需的依赖。 - **示例代码**:SDK通常包含一些示例portlet项目,帮助开发者快速理解如何...
在IT领域,特别是企业级应用开发中,Liferay作为一个强大的企业门户平台,提供了丰富的功能和服务,其中Liferay Portlet的开发是构建定制化企业应用的关键技术之一。本文将基于提供的文件信息,深入解析Liferay ...
- **ext-service/src**:提供可被其他插件调用的服务接口。 - **ext-web/docroot**:包含Web应用的配置文件和JSP页面。 - **其他目录**:如ext-util-bridges、ext-util-java、ext-util-taglib,主要用于高级应用...
Liferay5.2.3的样例,通过war.bat打包后发布到相应的liferay环境即可。 另外,需要配置context,tomcat中的代码如下: </Context>
liferay portlet例子 liferay portlet例子
在"用struts1.X实现liferay portlet插件(HelloWorld)"的项目中,我们将探讨如何将Struts1与Liferay的portlet机制相结合,构建一个简单的portlet插件。以下是一些主要的知识点: 1. **Struts1基础知识**:Struts1的...
Portlet是Liferay Portal中的核心组件,类似于Web应用的迷你窗口,可以嵌入到门户页面上展示内容和服务。Portlets可以是动态的,比如显示实时数据,也可以是静态的,如导航菜单或登录表单。它们通过portlet API与...
Liferay的特点在于其强大的portlet容器,portlet是一种可重用的Web组件,可以集成到门户页面中,为用户提供定制化的功能。 Alfresco则是一个强大的企业内容管理系统(Enterprise Content Management, ECM),它涵盖...
7. **开发工具集成**:对于Java开发,IDE如Eclipse或IntelliJ IDEA通常有插件支持Liferay的开发,包括自动导入所需的客户端库和生成服务代理代码。 8. **日志和调试**:在调用Web服务过程中,日志记录和调试是必不...
【Liferay Portlet 对象详解】 在 Liferay 平台中,Portlet 是核心组件,它负责呈现内容和提供互动功能。Portlet 技术的理解和应用是开发 Liferay 应用程序的关键。本文将深入解析 Portlet 的关键概念,包括 ...
Liferay Plugins SDK提供了创建portlet和其他Liferay插件所需的工具和模板。安装并配置SDK后,即可开始创建自定义portlet。 ### 六、开发工具 为了提高开发效率,建议安装以下工具: - Eclipse IDE:主流的Java...
【标题】"liferay-spring-portlet"是一个基于Spring框架构建的portlet应用,适用于Liferay门户平台。这个项目展示了如何将Spring与Liferay Portal结合,创建一个可直接部署到Liferay中的WAR包。作者提到他们已经花费...
本指南将重点介绍使用Liferay Plugin SDK进行Portlet插件开发的方法。 #### 三、创建Portlet插件工程 ##### 1. 前置准备 - **安装Liferay Eclipse 插件**:首先需要安装Liferay的Eclipse插件或直接使用Liferay...
- **RESTful服务**:创建Portlet API,以JSON或其他格式暴露数据,供其他应用或Portlets调用。 总之,理解并掌握Liferay Portlet的开发是构建强大门户系统的关键。通过实践和不断探索,开发者可以充分利用Liferay...
1. 使用Liferay Plugin SDK或者Gradle插件创建一个新的Liferay Portlet项目。 2. 在项目的src/main/resources目录下添加Soy模板文件,例如`templates/monthlyTrading.soy`,在这里定义UI布局和数据绑定。 3. 在Soy...
此外,开发者还可以利用Liferay的服务层和服务API来进一步扩展portlet的功能,例如访问数据库、调用其他portlet服务等。 总的来说,"Liferay Control-Panel Portlet DTD-5.2_MVC-Portlet"这个主题涵盖了Liferay的...
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 ...
### Liferay EXT 基本配置方法 #### 一、EXT 模式配置步骤 **第一步:源码压缩包解压** 1. **解压指定目录:** 首先,将下载到的 Liferay 源码压缩包解压到指定的目录下。 - 这一步主要是为了准备环境,确保...