Foren

Get journal article urlTitle from the URL

Hebatu Allah Fahmy, geändert vor 11 Jahren.

Get journal article urlTitle from the URL

Junior Member Beiträge: 41 Beitrittsdatum: 06.08.12 Neueste Beiträge
Hello all ,

I am trying to get The current rendered journal article from its urlTitle
I get the current url then split it to get urlTitle then send it to getArticleByUrlTitle method as following



	ThemeDisplay themeDisplayObject = (ThemeDisplay) request
			.getAttribute(WebKeys.THEME_DISPLAY);
	//long groupId = ParamUtil.getLong(request, "groupId", scopeGroupId);
	long groupId = themeDisplayObject.getScopeGroupId();
	
	String url = PortalUtil.getCurrentURL(request);
	String [] urlString = url.split("/");
	String urlTitle = urlString[urlString.length - 1];
	
//	String articleId = "31575";
	JournalArticle journal = JournalArticleLocalServiceUtil.getArticleByUrlTitle(groupId, urlTitle);


This throws the following exception

Stacktrace:
        at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
        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:722)
        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:72)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:113)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70)
        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:684)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
        at com.liferay.portlet.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:316)
        at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:105)
        ... 173 more
Caused by: javax.servlet.ServletException: com.liferay.portlet.journal.NoSuchArticleException: No JournalArticle exists with the key {groupId=10179, urlTitle=%
0%D9%85%D8%B9%D9%8A%D9%86%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%A8%D8%AF-, status=1}
        at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
        at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
        at com.liferay.portal.kernel.servlet.PageContextWrapper.handlePageException(PageContextWrapper.java:161)
        at org.apache.jsp.view_jsp._jspService(view_jsp.java:317)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        ... 188 more
Caused by: com.liferay.portlet.journal.NoSuchArticleException: No JournalArticle exists with the key {groupId=10179, urlTitle=%20%D9%85%D8%B9%D9%8A%D9%86%D8%A7
D8%AA-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%A8%D8%AF-, status=1}
        at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.getLatestArticleByUrlTitle(JournalArticleLocalServiceImpl.java:1444)
        at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.getArticleByUrlTitle(JournalArticleLocalServiceImpl.java:824)
        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:112)
        at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:71)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108)
        at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:59)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108)
        at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:59)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108)
        at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:211)
        at $Proxy204.getArticleByUrlTitle(Unknown Source)
        at com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil.getArticleByUrlTitle(JournalArticleLocalServiceUtil.java:480)
        at org.apache.jsp.view_jsp._jspService(view_jsp.java:248)
        ... 191 more
17:25:51,451 ERROR [render_portlet_jsp:154] com.liferay.portlet.journal.NoSuchArticleException: No JournalArticle exists with the key {groupId=10179, urlTitle=
20%D9%85%D8%B9%D9%8A%D9%86%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%A8%D8%AF-, status=1}
        at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.getLatestArticleByUrlTitle(JournalArticleLocalServiceImpl.java:1444)
        at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.getArticleByUrlTitle(JournalArticleLocalServiceImpl.java:824)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:112)
        at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:71)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108)
        at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:59)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108)
        at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:59)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108)
        at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:211)
        at com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil.getArticleByUrlTitle(JournalArticleLocalServiceUtil.java:480)
        at org.apache.jsp.view_jsp._jspService(view_jsp.java:248)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        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:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)


So , how can I get the current displayed journal article ?

All your feedback is highly appreciated .

Thanks in advance .
Parikshit Sharma, geändert vor 11 Jahren.

RE: Get journal article urlTitle from the URL

New Member Beiträge: 21 Beitrittsdatum: 16.01.13 Neueste Beiträge
Hi,
after splitting you need to decode it to the normal form use HttpUtil.decode(urlTitle) .
Hebatu Allah Fahmy, geändert vor 11 Jahren.

RE: Get journal article urlTitle from the URL

Junior Member Beiträge: 41 Beitrittsdatum: 06.08.12 Neueste Beiträge
Many thanks for your reply , it works