论坛

主页 » Liferay Portal » English » 3. Development

组合视图 统一视图 树状图
讨论主题 [ 上一个 | 下一个 ]
toggle
Charalampos Chrysikopoulos
Cast Exception with struts 2 portlet from 5.2.x to 6.0.x
2012年3月13日 上午2:25
答复

Charalampos Chrysikopoulos

等级: Junior Member

帖子: 29

加入日期: 2011年12月8日

最近的帖子

I have a strange problem:
in my firm we use to have a port let implemented in life ray 5.2.3 using struts2. This worked well, till we decided to upgrade to liferay 6.0.x EE. We "transfer" the code from the old version to a new 6.0.x life ray portlet and it looked well except one thing. We got the following exception:

java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.String
at com.liferay.portal.servlet.BrowserSnifferImpl.getUserAgent(BrowserSnifferImpl.java:356)
at com.liferay.portal.servlet.BrowserSnifferImpl.isMozilla(BrowserSnifferImpl.java:216)
at com.liferay.portal.servlet.BrowserSnifferImpl.isFirefox(BrowserSnifferImpl.java:140)
at com.liferay.portal.kernel.servlet.BrowserSnifferUtil.isFirefox(BrowserSnifferUtil.java:60)
at com.liferay.portal.servlet.filters.gzip.GZipResponse.<init>(GZipResponse.java:57)
at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:121)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:203)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:105)
at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
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.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:54)
at $Proxy390.doFilter(Unknown Source)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:121)
at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:55)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:203)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:105)
at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
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.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:54)

...

The portal couldn't load the styles, javascripts and images of the portlet, so the port let seems to work but its ugly without its css and images and some functionality is missing because of the missing javascript.
It seems that the exception broke the load of those resources, but I can't find out where the problem is.
We are using Liferay 6.0 EE.

Thank you in advance,
Charalampos Chrysikopoulos
Charalampos Chrysikopoulos
RE: Cast Exception with struts 2 port let from 5.2.x to 6.0.x
2012年3月6日 上午2:28
答复

Charalampos Chrysikopoulos

等级: Junior Member

帖子: 29

加入日期: 2011年12月8日

最近的帖子

An example of the case:
If I try to load only the icon of the portlet by calling

http://localhost:8080/my-portlet/icon.png

i get the same exception:

java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.String
at com.liferay.portal.servlet.BrowserSnifferImpl.getUserAgent(BrowserSnifferImpl.java:356)
at com.liferay.portal.servlet.BrowserSnifferImpl.isMozilla(BrowserSnifferImpl.java:216)
at com.liferay.portal.servlet.BrowserSnifferImpl.isFirefox(BrowserSnifferImpl.java:140)
at com.liferay.portal.kernel.servlet.BrowserSnifferUtil.isFirefox(BrowserSnifferUtil.java:60)
at com.liferay.portal.servlet.filters.gzip.GZipResponse.<init>(GZipResponse.java:57)
at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:121)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:203)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:105)
at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at sun.reflect.GeneratedMethodAccessor455.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
Charalampos Chrysikopoulos
RE: Cast Exception with struts 2 portlet from 5.2.x to 6.0.x
2012年3月6日 上午4:18
答复

Charalampos Chrysikopoulos

等级: Junior Member

帖子: 29

加入日期: 2011年12月8日

最近的帖子

I tried to deactivate

#
# If the user can unzip compressed HTTP content, the GZip filter will
# zip up the HTTP content before sending it to the user. This will speed up
# page rendering for users that are on dial up.
#
#com.liferay.portal.servlet.filters.gzip.GZipFilter=false

but it didn't fix the problem.
Zsolt Balogh
RE: Cast Exception with struts 2 portlet from 5.2.x to 6.0.x
2012年11月19日 下午6:07
答复

Zsolt Balogh

LIFERAY STAFF

等级: Expert

帖子: 463

加入日期: 2009年3月23日

最近的帖子

Hi,

Thanks for reporting this problem, it helped me with the investigation that you have mentioned that it happens when you are using struts 2.

I have created a ticket, you can track the progress here: LPS-31104

Zsolt
Abhed Dekavadiya
RE: Cast Exception with struts 2 portlet from 5.2.x to 6.0.x
2012年12月30日 下午3:29
答复

Abhed Dekavadiya

等级: Junior Member

帖子: 74

加入日期: 2010年10月5日

最近的帖子

Hi Zsolt,

I am facing the same error and I am able to get rid of the error after removing below filters and their related filter-mappings from liferay-web.xml (tomcat/webapps/portlet-name/WEB-INF/) after deploying the portlet. But hat's a workaround. The ticket LPS-31104 is closed, could you please let me know the fix for that?

 1
 2    <filter>
 3        <filter-name>GZip Filter</filter-name>
 4        <filter-class>com.liferay.portal.kernel.servlet.PortalClassLoaderFilter</filter-class>
 5        <init-param>
 6            <param-name>filter-class</param-name>
 7            <param-value>com.liferay.portal.servlet.filters.gzip.GZipFilter</param-value>
 8        </init-param>
 9    </filter>
10    <filter>
11        <filter-name>GZip Filter - Theme PNG</filter-name>
12        <filter-class>com.liferay.portal.kernel.servlet.PortalClassLoaderFilter</filter-class>
13        <init-param>
14            <param-name>filter-class</param-name>
15            <param-value>com.liferay.portal.servlet.filters.gzip.GZipFilter</param-value>
16        </init-param>
17        <init-param>
18            <param-name>url-regex-pattern</param-name>
19            <param-value>.+/themes/.*/images/.*\.png</param-value>
20        </init-param>
21    </filter>
Jelmer Kuperus
RE: Cast Exception with struts 2 portlet from 5.2.x to 6.0.x
2012年12月30日 下午4:58
答复

Jelmer Kuperus

等级: Liferay Legend

帖子: 1192

加入日期: 2010年3月10日

最近的帖子

They reference the commit id in the ticket, so you can see what they changed

https://github.com/liferay/liferay-portal/commit/262014cd2d2c1da29cb86d6fef246301c6dc2c6f

In this case you could probably create your own class in ext-impl hat extends BrowserSnifferImpl and fixes the problem. You could wire up this class in ext-spring.xml
Abhed Dekavadiya
RE: Cast Exception with struts 2 portlet from 5.2.x to 6.0.x
2013年2月1日 上午4:01
答复

Abhed Dekavadiya

等级: Junior Member

帖子: 74

加入日期: 2010年10月5日

最近的帖子

Hey Jelmer,

Thanks for your inputs ! I was working on a sample, which is delivered now. I'll look into fixing the issue, if I'll face it again next time emoticon

kind regards,
Abhed Dekavadiya