Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
179 views
in Technique[技术] by (71.8m points)

java - Argument type Mismatch error at populating Struts Bean Double from JSP Form in Weblogic

First of all, thanks in advance for any help given.

I will try to describe our problem as good as possible, we have been searching for months in webs like Stack Overflow and all over the internet but none of the proposed solutions has worked :

We are trying to migrate from OC4J 10.1.2.0.2 to Weblogic Server 1036_generic and from java 1.4 to Java 1.8. The structure of the App has not been changed and remains the same. The EAR is compiled with Apache Maven 3.6.3 and Java 1.8.0_131.

The App starts and runs with no problem at all until we want to send a form from JSP to Struts 1.1 (as specified in the POM) with a field of Double Data type. If we fill the field with an Integer value (1,2,3 ...) the server crashes with a 500 error written in our mother tongue (spanish). Notice that the english error description translated is "Argument type Mismatch".

The log of the server lists this error:

<Error> <HTTP> <WEBLOGICSERVERADDRESS> <SERVERCONTAINER> <[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <[ServletContext@182677010[app:criticalAPP module:criticalAPP path:/criticalAPP spec-version:null], request: Workmanager: default, Version: 1, Scheduled=true, Started=true, Started time: 11 ms
[
POST /criticalAPP/making/concepts.do HTTP/1.1
Accept: */*
Referer: http://WEBLOGICSERVERADDRESS/criticalAPP/making/concepts.do?accion=load&year=2020&state=100&amount=1&version=1
Accept-Language: es-ES
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Content-Length: 1017
DNT: 1
Cache-Control: no-cache
Cookie: JSESSIONID=gSFglg2fR23DVj97boMtgxqXHRAOjA1p-O8PD-TFF!-1845240748; OAMAuthnHintCookie=1
OAM_IMPERSONATOR_USER: 
OAM_REMOTE_USER: USER
OAM_LAST_REAUTHENTICATION_TIME: AUTH DATE
OAM_IDENTITY_DOMAIN: DOMAIN
authenticatedState: bWZNNHJEalUrRWxaUWRKTCt3dGgvZDA1TG5ZVmhwS1h4WU95aS9
Connection: Keep-AliveUSER
X-Forwarded-For: IPADRESS
X-WebLogic-KeepAliveSecs: 30
X-WebLogic-Force-JVMID: -1845240748

]] Root cause of ServletException.
java.lang.IllegalArgumentException: **discrepancia en el tipo de argumento**
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789)
at org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684)
at org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713)
at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at es.criticalAPP.autenticacion.AutenticacionFilter.doFilter(AutenticacionFilter.java:97)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at es.criticalAPP.filters.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:34)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1493)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

This is an error never found on the OC4J version, the application is critical in our organization and updating Struts or making structural changes, even for example Java Version beyong 1.8) is not an option.

question from:https://stackoverflow.com/questions/66062788/argument-type-mismatch-error-at-populating-struts-bean-double-from-jsp-form-in-w

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...