tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Xavier Dury <kal...@hotmail.com>
Subject RE: Using EL expressions in an ObjectFactory
Date Mon, 16 Sep 2013 13:43:39 GMT
I built tomcat from trunk (rev 1523639) and I'm having the same issue I had with glassfish
EL implementation when using overloaded methods:

javax.el.ELException: Cannot convert ./ of type class java.lang.String to class java.net.URI
	at org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:482)
	at org.apache.el.ExpressionFactoryImpl.coerceToType(ExpressionFactoryImpl.java:48)
	at javax.el.ELContext.convertToType(ELContext.java:473)
	at org.apache.el.lang.EvaluationContext.convertToType(EvaluationContext.java:155)
	at javax.el.ELUtil.invokeConstructor(ELUtil.java:261)
	at javax.el.StaticFieldELResolver.invoke(StaticFieldELResolver.java:203)
	at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256)
	at org.apache.el.parser.AstFunction.getValue(AstFunction.java:138)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:188)
	at javax.el.ELProcessor.getValue(ELProcessor.java:129)
	at javax.el.ELProcessor.eval(ELProcessor.java:115)
	at org.apache.naming.factory.ExpressionFactoryTest.elImplementationShouldWork(ExpressionFactoryTest.java:43)

So I guess it's normal behaviour, isn't it?

I don't think EL spec does mandate implementations to make their best effort to find a suitable
method when invoking overloaded methods.

Xavier

----------------------------------------
> Subject: Re: Using EL expressions in an ObjectFactory
> From: dmikusa@gopivotal.com
> Date: Mon, 16 Sep 2013 07:48:33 -0400
> To: users@tomcat.apache.org
>
> On Sep 16, 2013, at 3:03 AM, Xavier Dury <kalgon@hotmail.com> wrote:
>
>> Hi,
>>
>> I switched to org.apache.tomcat:tomcat-jasper-el:8.0.0-RC1 as javax.el 3.0 implementation
and tested with the following code:
>>
>> ELProcessor processor = new ELProcessor();
>> processor.getELManager().importClass("java.io.File");
>> processor.eval("File('./')");
>>
>> but I get the following error:
>>
>> javax.el.ELException: Function ':File' not found
>> at org.apache.el.parser.AstFunction.getValue(AstFunction.java:136)
>> at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:188)
>> at javax.el.ELProcessor.getValue(ELProcessor.java:129)
>> at javax.el.ELProcessor.eval(ELProcessor.java:115)
>> at org.apache.naming.factory.ExpressionFactoryTest.elImplementationShouldWork(ExpressionFactoryTest.java:43)
>>
>> Are methods importClass, importStatic and importPackage on ELManager already implemented
in apache EL?
>
> Sorry, I don't think I was clear enough in my last response. This does not work with
Tomcat 8.0.0-RC1, but has been fixed (see the bug I referenced earlier). You'll need to either
build and use Tomcat trunk or wait until the next RC release is available.
>
> Dan
>
>>
>> Regards,
>>
>> Xavier
>>
>> ----------------------------------------
>>> Subject: Re: Using EL expressions in an ObjectFactory
>>> From: dmikusa@gopivotal.com
>>> Date: Fri, 13 Sep 2013 15:38:29 -0400
>>> To: users@tomcat.apache.org
>>>
>>> On Sep 13, 2013, at 3:27 AM, Xavier Dury <kalgon@hotmail.com> wrote:
>>>
>>>> When I try the following:
>>>>
>>>> ELProcessor processor = new ELProcessor();
>>>> processor.getELManager().importClass("java.io.File");
>>>> processor.eval("File('./')");
>>>>
>>>> I get javax.el.ELException: java.lang.IllegalArgumentException: Cannot convert
./ of type class java.lang.String to class java.net.URI.
>>>>
>>>> I'm using glassfish javax.el 3.0 implementation for my tests. Maybe the problem
comes from this specific implementation.
>>>
>>> Yes, that would be the problem. I've noticed the same behavior w/GlassFish's
EL 3.0 implementation. Try building Tomcat trunk and using it's implementation or using the
next Tomcat 8 RC when it's available. Neither should have that problem.
>>>
>>> Dan
>>>
>>>
>>>>
>>>> ----------------------------------------
>>>>> Subject: Re: Using EL expressions in an ObjectFactory
>>>>> From: dmikusa@gopivotal.com
>>>>> Date: Thu, 12 Sep 2013 17:10:21 -0400
>>>>> To: users@tomcat.apache.org
>>>>>
>>>>> On Sep 12, 2013, at 7:58 AM, Xavier Dury <kalgon@hotmail.com> wrote:
>>>>>
>>>>>> Ok,
>>>>>>
>>>>>> I fixed the styling and the documentation. If anything else must
be changed, don't hesitate.
>>>>>
>>>>> In your docs, you state the following remark...
>>>>>
>>>>> "Try to avoid overloaded methods/constructors as much as possible in
EL 3.0 expression as the ELProcessor will use the first one it will find by reflection."
>>>>>
>>>>> Can you clarify what you mean by this? There was a problem in RC-1 that
sounds similar, but it's been fixed.
>>>>>
>>>>> https://issues.apache.org/bugzilla/show_bug.cgi?id=55483
>>>>>
>>>>> Is this a problem in trunk? Point being, if you're seeing an issue with
EL 3.0, we should try to fix it.
>>>>>
>>>>> Dan
>>>>>
>>>>>
>>>>>> ----------------------------------------
>>>>>>> Date: Thu, 12 Sep 2013 12:01:26 +0100
>>>>>>> From: markt@apache.org
>>>>>>> To: users@tomcat.apache.org
>>>>>>> Subject: Re: Using EL expressions in an ObjectFactory
>>>>>>>
>>>>>>> On 12/09/2013 11:49, Xavier Dury wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I implemented a simple ExpressionFactory @
>>>>>>>> https://github.com/kalgon/expression-factory.
>>>>>>>>
>>>>>>>> I would love to see this ExpressionFactory next to
>>>>>>>> org.apache.naming.factory.BeanFactory in tomcat.
>>>>>>>
>>>>>>> No objections in principle.
>>>>>>>
>>>>>>> Haven't looked at the new code in detail. A few initial observations:
>>>>>>> - I'm assuming this is a contribution as per section 5 of the
Apache
>>>>>>> License, version 2.0
>>>>>>> - There is no documentation
>>>>>>> - Tomcat code standards use 4 spaces for indents, not tabs
>>>>>>> - Some @Override markers look to be missing
>>>>>>>
>>>>>>> Mark
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 		 	   		  
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message