The class com.opensymphony.xwork2.config.providers.XmlConfigurationProvider
in method register(...) use this logic for checking....
if (containerBuilder.contains(ctype, name)) {
Location loc =
LocationUtils.getLocation(loadedBeans.get(ctype.getName() + name));
if (throwExceptionOnDuplicateBeans) {
throw new ConfigurationException("Bean type " + ctype + "
with the name " +
name + " has already been loaded by " + loc, child);
}
}
Thus I CAN NOT register 2 bean with same type and name!!!
I can register new TextProvider with defferent name:xxxstruts . But I am not
sure that exactly my bean will be used to create an object for TextProvider.
At that time there is a bug in XWork 2.0.1....2.1.0 when TextProvider
object is created.
I want to investigate the common method for loading my realization of
standart bean.
cilquirm wrote:
>
> I think the problem might be that there may not be a way to configure a
> different TextProvider.
>
> Consider the object factory example, in this case guice :
>
> <struts>
>
> <bean type="com.opensymphony.xwork2.ObjectFactory"
> name="guice"
> class="com.google.inject.struts2.GuiceObjectFactory"/>
>
> <!-- Make the Guice object factory the automatic default -->
> <constant name="struts.objectFactory" value="guice" />
>
> </struts>
>
>
> What this does is create a bean provider with a given name of that type.
>
> The constant portion is actually the configuration piece.
>
> I tried looking in the source, but I couldn't find how to configure the
> textProvider.
> The two pre-configured ones both use the same class so one wouldn't note
> any difference.
>
> Maybe someone on the list can help you out more.
>
> Apologies,
> -a
>
>
>
> Igor Vlasov wrote:
>>
>> This action cause an error.
>> I will write in struts.xml:
>> <struts>
>>
>> <constant name="struts.enable.DynamicMethodInvocation" value="false"
>> />
>>
>> <bean type="com.opensymphony.xwork2.TextProvider" name="xwork1"
>> class="karakas.struts.RicoTextProvider" />
>> <bean type="com.opensymphony.xwork2.TextProvider" name="struts"
>> class="karakas.struts.RicoTextProvider" />
>> <!-- Add packages here -->
>> .....
>> </struts>
>>
>> and use the same type(com.opensymphony.xwork2.TextProvider) and the same
>> name(struts) as in struts-defailt.xml
>> Then i recieve an error in tomcat log:
>>
>>
>> Unable to load bean: type:com.opensymphony.xwork2.TextProvider
>> class:karakas.struts.RicoTextProvider - bean -
>> /web/WEB-INF/classes/struts.xml:10:109
>>
>> Caused by: Bean type interface com.opensymphony.xwork2.TextProvider with
>> the name xwork1 has already been loaded by [unknown location] - bean -
>> file:/D:/projects/Karakas1.1/build/web/WEB-INF/classes/struts.xml:10:109
>>
>>
>>
>>
>> cilquirm wrote:
>>>
>>> you can redefine it in your struts.xml, much like how you would specify
>>> the object factory to override the default object factory .
>>>
>>> -a
>>>
>>>
>>>
>>> Igor Vlasov wrote:
>>>>
>>>> Hello.
>>>> I want to change some information in struts-default.xml.
>>>>
>>>> I can move it to classes directoty and do any change....:-)
>>>>
>>>> Is there any more sofisticated method to do the same from struts.xml?
>>>>
>>>> For example i want to change TextProvider:
>>>> From
>>>> <bean type="com.opensymphony.xwork2.TextProvider" name="struts"
>>>> class="one class" />
>>>>
>>>> to
>>>> <bean type="com.opensymphony.xwork2.TextProvider" name="struts"
>>>> class="another class" />
>>>>
>>>
>>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/-S2---Change-struts-default.xml-content-tf4684048.html#a13420988
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]