Fórumok

JournalArticleLocalServiceUtil.addArticle

alan brito delgado, módosítva 9 év-val korábban

JournalArticleLocalServiceUtil.addArticle

New Member Bejegyzések: 14 Csatlakozás dátuma: 2014.05.30. Legújabb bejegyzések
Hello,
I'm trying to add a journal article , and i try with this code


Map<locale, string> titleMap = new HashMap<locale, string>();
GregorianCalendar date = (GregorianCalendar)                                  
GregorianCalendar.getInstance(TimeZone.getTimeZone("Europe/Paris"),Locale.FRANCE);

JournalArticle addedTrip = JournalArticleLocalServiceUtil.addArticle(
						    theme.getUserId(),
						    theme.getScopeGroupId(),
				                    0L,
				                    0L,
				                    "", 
				                    true,
				                    JournalArticleConstants.VERSION_DEFAULT,//version
				                    titleMap,             
				                    null,                 
				                    null,
				                    null,
				                    null,
				                    null,
				                    null,
				                    date.get(Calendar.MONTH),
				                    date.get(Calendar.DAY_OF_MONTH),
				                    date.get(Calendar.YEAR),
				                    date.get(Calendar.HOUR),
				                    date.get(Calendar.MINUTE),
				                    0, 
				                    0, 
				                    0, 
				                    0, 
				                    0, 
				                    true,
				                    0, 
				                    0, 
				                    0, 
				                    0, 
				                    0, 
				                    true,
				                    true,
				                    false,
				                    null, 
				                    null, 
				                    null, 
				                    null, 
				                    serviceContext 
				                    );
</locale,></locale,>

and i get this error

com.liferay.portlet.journal.ArticleTitleException
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validate(JournalArticleLocalServiceImpl.java:3280)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validate(JournalArticleLocalServiceImpl.java:3370)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.addArticle(JournalArticleLocalServiceImpl.java:187)

someone can help me...!!!
thanks in advance emoticon
thumbnail
David H Nebinger, módosítva 9 év-val korábban

RE: JournalArticleLocalServiceUtil.addArticle

Liferay Legend Bejegyzések: 14914 Csatlakozás dátuma: 2006.09.02. Legújabb bejegyzések
Article title exception means there's an issue with the title. It cannot be null or empty or spaces.
thumbnail
Olaf Kock, módosítva 9 év-val korábban

RE: JournalArticleLocalServiceUtil.addArticle

Liferay Legend Bejegyzések: 6396 Csatlakozás dátuma: 2008.09.23. Legújabb bejegyzések
I've just used exactly that API in my Webinar session. You'll find working code there. But, indeed, just as David says: You'll need a title. An empty titleMap doesn't suffice
alan brito delgado, módosítva 9 év-val korábban

RE: JournalArticleLocalServiceUtil.addArticle

New Member Bejegyzések: 14 Csatlakozás dátuma: 2014.05.30. Legújabb bejegyzések
thanks a lot for reply but i've put the title and i've got the same mistake

Map<locale, string> titleMap = new HashMap<locale, string>();
titleMap.put(Locale.US,"Title in US");
Map<locale, string> descriptionMap = new HashMap<locale, string>();
descriptionMap.put(Locale.US,"Description in US");
</locale,></locale,></locale,></locale,>


com.liferay.portlet.journal.ArticleTitleException
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validate(JournalArticleLocalServiceImpl.java:3280)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validate(JournalArticleLocalServiceImpl.java:3370)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.addArticle(JournalArticleLocalServiceImpl.java:187)

someone have other way to put the title.
thanks in advance.
thumbnail
David H Nebinger, módosítva 9 év-val korábban

RE: JournalArticleLocalServiceUtil.addArticle

Liferay Legend Bejegyzések: 14914 Csatlakozás dátuma: 2006.09.02. Legújabb bejegyzések
I just checked the source for 6.2 ce ga 2 and 3280 is in the middle of a comment.

What version of Liferay are you using?
alan brito delgado, módosítva 9 év-val korábban

RE: JournalArticleLocalServiceUtil.addArticle

New Member Bejegyzések: 14 Csatlakozás dátuma: 2014.05.30. Legújabb bejegyzések
well i'm using liferay 6.1 ce ga 1
thumbnail
David H Nebinger, módosítva 9 év-val korábban

RE: JournalArticleLocalServiceUtil.addArticle

Liferay Legend Bejegyzések: 14914 Csatlakozás dátuma: 2006.09.02. Legújabb bejegyzések
automatically my first reply is that you should upgrade to 6.1 GA3. By sticking with GA1, you're committing to a version with known bugs that have already been patched in a later release.

Now, from the code you get:

if ((classNameId == 0) &&
(titleMap.isEmpty() ||
Validator.isNull(titleMap.get(defaultLocale)))) {

throw new ArticleTitleException();
}

So classNameId is equal to null and either titlemap is empty (which you've already set) but more likely you're not setting the default locale correctly when adding, so titleMap is returning null for the default locale.
alan brito delgado, módosítva 9 év-val korábban

RE: JournalArticleLocalServiceUtil.addArticle

New Member Bejegyzések: 14 Csatlakozás dátuma: 2014.05.30. Legújabb bejegyzések
thanks for replying David, I've changed the version of liferay to 6.2 ce ga 2, sorry by ignorance but i dont know where you've obtained classNameId.
this is my code

String en_ES = LocaleUtil.getDefault().toString();
String content = "<!--?xml version='"+1.0+"'?--><root available-locales="&quot;+en_ES+&quot;" default-locale="&quot;+en_ES+&quot;"><static-content language-id="&quot;+en_ES+&quot;"> </static-content></root>";

	            Map<locale, string> titleMap = new HashMap<locale, string>();
	            titleMap.put(LocaleUtil.getDefault(),"Titulo in ES");
	            Map<locale, string> descriptionMap = new HashMap<locale, string>();
	            descriptionMap.put(LocaleUtil.getDefault(),"Descripción in ES");

	            Calendar now = Calendar.getInstance();
	            
	            int classNameId = 0;
				if ((classNameId  == 0) &amp;&amp;
	            		(titleMap.isEmpty() ||
	            		Validator.isNull(titleMap.get(LocaleUtil.getDefault())))) {

	            		}
	            ServiceContext serviceContext = new ServiceContext();
	            serviceContext.setScopeGroupId(theme.getScopeGroupId());
	            
	            JournalArticle journalArticle = JournalArticleLocalServiceUtil.addArticle(
						theme.getUserId(), 
						theme.getScopeGroupId(), 
	                    0L,  
	                    0L,  
	                    0, 
	                    "",  
	                    true,
	                    JournalArticleConstants.VERSION_DEFAULT,
	                    titleMap,    
	                    descriptionMap,
	                    content,
	                    null,
	                    null,
	                    null,
	                    null,
	                    1, 
	                    1, 
	                    2008,              
	                    0, 
	                    0, 
	                    0, 
	                    0, 
	                    0, 
	                    0, 
	                    0, 
	                    true, 
	                    0, 
	                    0, 
	                    0, 
	                    0, 
	                    0, 
	                    true,        
	                    true,        
	                    false,        
	                    null,        
	                    null,        
	                    null,        
	                    null,         
	                    serviceContext       
	                    );
	            
	            JournalArticleLocalServiceUtil.updateStatus(
	            		theme.getUserId(), theme.getScopeGroupId(), journalArticle.getArticleId(),
	        			journalArticle.getVersion(), WorkflowConstants.STATUS_APPROVED,
	        			StringPool.BLANK, null, serviceContext);
</locale,></locale,></locale,></locale,>

and now i have this error

com.liferay.portlet.journal.ArticleTypeException
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validate(JournalArticleLocalServiceImpl.java:6582)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validate(JournalArticleLocalServiceImpl.java:6678)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.addArticle(JournalArticleLocalServiceImpl.java:326)
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.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
at com.sun.proxy.$Proxy217.addArticle(Unknown Source)
at com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil.addArticle(JournalArticleLocalServiceUtil.java:439)
at net.sunasa.sns.base.NoticiasController.defaultView(NoticiasController.java:123)
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.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:362)
at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.doHandle(AnnotationMethodHandlerAdapter.java:349)
at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.handleRender(AnnotationMethodHandlerAdapter.java:291)
at org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:767)
at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:522)
at org.springframework.web.portlet.FrameworkPortlet.doDispatch(FrameworkPortlet.java:470)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103)
at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:55)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:604)
at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:677)
at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:379)
at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(render_005fportlet_jsp.java:1230)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:57)
at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78)
at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
at com.liferay.portlet.PortletContainerImpl._doRender(PortletContainerImpl.java:655)
at com.liferay.portlet.PortletContainerImpl.render(PortletContainerImpl.java:138)
at com.liferay.portlet.SecurityPortletContainerWrapper.render(SecurityPortletContainerWrapper.java:141)
at com.liferay.portlet.RestrictPortletContainerWrapper.render(RestrictPortletContainerWrapper.java:126)
at com.liferay.portal.kernel.portlet.PortletContainerUtil.render(PortletContainerUtil.java:156)
at com.liferay.portal.layoutconfiguration.util.PortletRenderer._render(PortletRenderer.java:120)
at com.liferay.portal.layoutconfiguration.util.PortletRenderer.render(PortletRenderer.java:72)
at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.doProcessTemplate(RuntimePageImpl.java:460)
at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.doDispatch(RuntimePageImpl.java:284)
at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.processTemplate(RuntimePageImpl.java:113)
at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.processTemplate(RuntimePageImpl.java:124)
at com.liferay.portal.layoutconfiguration.util.RuntimePageUtil.processTemplate(RuntimePageUtil.java:69)
at org.apache.jsp.html.portal.layout.view.portlet_jsp._jspService(portlet_jsp.java:553)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
at com.liferay.portal.action.LayoutAction.includeLayoutContent(LayoutAction.java:280)
at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:383)
at com.liferay.portal.action.LayoutAction.doExecute(LayoutAction.java:178)
at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:79)
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:173)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:546)
at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:523)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:293)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:160)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:359)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:123)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:293)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:243)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:263)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:83)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:226)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
thumbnail
Victor Zorin, módosítva 9 év-val korábban

RE: JournalArticleLocalServiceUtil.addArticle

Liferay Legend Bejegyzések: 1228 Csatlakozás dátuma: 2008.04.14. Legújabb bejegyzések
We had the same issues with ArticleTitleException when importing articles on 6.1+.

Nothing to do with classNameId being 0, etc. Portal throws this exception when there is no title in a map that matches the default locale of the article content.

Below I have added a snippet of code from our Liferay Business Module Import/Export portlet. As part of its operation this facility also imports articles from XML file.

Pay attention to the line that starts with:
Locale articleDefaultLocale = LocaleUtil.fromLanguageId(LocalizationUtil.getDefaultLocale(content));

This is where we identify what is the default locale of the content, then add it to the titleMap if it is not there yet.

Once we extended titleMap with the title with default locale of the article (or portal), ArticleTitleException stopped appearing.


	protected void importArticle(long groupId, long userId, Node articleNode, ServiceContext ctx, PortletRequest req) throws SystemException, PortalException
	{
		String binaryContent =  articleNode.query("content").get(0).getValue();
		byte[] contentArray = javax.xml.bind.DatatypeConverter.parseBase64Binary(binaryContent);
		String content = new String(contentArray);
		logger.info("Have content=" + content);

		boolean autoArticleId = true;
		String articleId = articleNode.query("@articleId").get(0).getValue();
		//logger.info("articleId=" + articleId);
		double version = 1;
		Map<locale, string> titleMap = new HashMap<locale,string>();
		{
			Nodes nodes = articleNode.query("title");
			String latestTitle = null;
			for (int i = 0; i &lt; nodes.size(); i++)
			{
				Node node = nodes.get(i);
				Locale locale = new Locale(node.query("@locale").get(0).getValue());
				String title = node.getValue();
				if(title.trim().length() &gt; 0)
				{
					latestTitle = title;
					//logger.info("add title " + locale.toString() + " value=" + title);
					titleMap.put(locale, title);
				}
			}
			// check the default locale
			if(latestTitle != null &amp;&amp; titleMap.containsKey(Locale.getDefault()) == false)
			{
				titleMap.put(Locale.getDefault(), latestTitle);				
			}
			Locale articleDefaultLocale = LocaleUtil.fromLanguageId(
					LocalizationUtil.getDefaultLocale(content));
			logger.info("articleDefaultLocale=" + articleDefaultLocale + " latestTitle=" + latestTitle);
			if(!titleMap.containsKey(articleDefaultLocale))
			{
				titleMap.put(articleDefaultLocale, latestTitle);								
			}
		}
		long classNameId = Long.parseLong(articleNode.query("@classNameId").get(0).getValue());
		long classPK = Long.parseLong(articleNode.query("@classPK").get(0).getValue());
		Map<locale, string> descriptionMap = new HashMap<locale,string>();
		{
			Nodes nodes = articleNode.query("description");
			for (int i = 0; i &lt; nodes.size(); i++)
			{
				Node node = nodes.get(i);
				Locale locale = new Locale(node.query("@locale").get(0).getValue());
				String description = node.getValue();
				//logger.info("add title " + locale.toString() + " value=" + title);
				descriptionMap.put(locale, description);
			}
			if(descriptionMap.containsKey(Locale.getDefault()) == false)
			{
				descriptionMap.put(Locale.getDefault(), "");
			}
		}
		
		String type = articleNode.query("@type").get(0).getValue();
		String structureId = articleNode.query("@structureId").get(0).getValue();
		String templateId = articleNode.query("@templateId").get(0).getValue();
		String layoutUuid = articleNode.query("@layoutUuid").get(0).getValue();;
		int displayDateMonth = 1;
		int displayDateDay = 1;
		int displayDateYear = 1970;
		int displayDateHour = 0;
		int displayDateMinute = 0;
		int expirationDateMonth = 0;
		int expirationDateDay = 0;
		int expirationDateYear = 0;
		int expirationDateHour = 0;
		int expirationDateMinute = 0;
		boolean neverExpire = true;
		int reviewDateMonth = 0;
		int reviewDateDay = 0;
		int reviewDateYear = 0;
		int reviewDateHour = 0;
		int reviewDateMinute = 0;
		boolean neverReview = true;
		boolean indexable = true;
		boolean smallImage = false;
		String smallImageURL = "";
		File smallImageFile = null;
		Map<string, byte[]> images = null;
		String articleURL = ""; //articleNode.query("@urlTitle").get(0).getValue();
		//logger.info("adding titleMap=" + titleMap.size());
		String xarticleId = "xxx";
		JournalArticle newArticle = JournalArticleLocalServiceUtil.addArticle(
				userId, groupId, classNameId, classPK, xarticleId  , autoArticleId , version, 
				titleMap, descriptionMap, 
				content, type, structureId , templateId, layoutUuid, 
				displayDateMonth, displayDateDay, displayDateYear, displayDateHour, displayDateMinute, 
				expirationDateMonth, expirationDateDay, expirationDateYear, expirationDateHour, expirationDateMinute, 
				neverExpire , 
				reviewDateMonth, reviewDateDay, reviewDateYear, reviewDateHour, reviewDateMinute, neverReview , 
				indexable , smallImage , smallImageURL , smallImageFile , images , 
				articleURL, ctx);
		DataUtil.getInstance().addArticleId(articleId, String.valueOf(newArticle.getArticleId()));
	}	</string,></locale,string></locale,></locale,string></locale,>
alan brito delgado, módosítva 9 év-val korábban

RE: JournalArticleLocalServiceUtil.addArticle

New Member Bejegyzések: 14 Csatlakozás dátuma: 2014.05.30. Legújabb bejegyzések
Thanks a lot for reply, the problem was solved emoticon