On 9/4/07, JunJie Nan <[EMAIL PROTECTED]> wrote:
>
> I tried to make some sense on @Conversational and @Scope("REQUEST"), but
> failed.  The error message:
> java.lang.ClassCastException: java.lang.String incompatible with
> java.lang.Thread
>     at org.apache.tuscany.sca.core.scope.RequestScopeContainer.getWrapper(
> RequestScopeContainer.java:35)
>     at
>
> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.getInstance
> (JavaImplementationInvoker.java:62)
>     at
>
> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke
> (JavaImplementationInvoker.java:85)
>     at
> org.apache.tuscany.sca.binding.sca.impl.RuntimeSCABindingInvoker.invoke(
> RuntimeSCABindingInvoker.java:48)
>     at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(
> JDKInvocationHandler.java:270)
>     at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(
> JDKInvocationHandler.java:114)
>     at $Proxy9.empty(Unknown Source)
>     at samples.hex.HexTest.testCartService(HexTest.java:77)
> I tried:
>
>    1.  @Conversational + @Scope("STATELESS")
>    2.  @Conversational + @Scope("CONVERSATION")
>    3.  @Conversational + @Scope("COMPOSITE")
>
> All the above 3 worked fine and did not have the error message above.
>
> Anybody can give me some hints, thanks!
>
> The component definition:
>     <component name="CartComponent">
>         <implementation.java class="samples.hex.cart.impl.CartImpl"/>
>     </component>
>
> The implementation:
> package samples.hex.cart.impl;
>
> import java.util.HashMap;
> import java.util.Map;
>
> import org.osoa.sca.annotations.ConversationID;
> import org.osoa.sca.annotations.Destroy;
> import org.osoa.sca.annotations.Init;
> import org.osoa.sca.annotations.Scope;
> import org.osoa.sca.annotations.Service;
>
> import samples.hex.cart.services.CartService;
>
> @Scope("REQUEST")
> @Service(CartService.class)
> public class CartImpl implements CartService {
>
>     @ConversationID
>     protected String conversationID;
>
>     protected Map<String, Integer> cart;
>     @Init
>     protected void init(){
>         if(cart==null)
>             cart = new HashMap<String, Integer>();
>     }
>
>     public void empty() {
>         cart.clear();
>     }
>
>     public Map<String, Integer> getItems() {
>         return cart;
>     }
>
>     public void updateItem(String itemID, int quantity) {
>         if(quantity<=0)
>             cart.remove(itemID);
>         cart.put(itemID, quantity);
>         System.out.println(conversationID + ":" + this);
>     }
>
>     @Destroy
>     protected void destroy(){
>         empty();
>     }
> }
>
> The interface:
> package samples.hex.cart.services;
>
> import java.util.Map;
>
> import org.osoa.sca.annotations.Conversational;
>
> @Conversational
> public interface CartService{
>     public void updateItem(String itemID, int quantity);
>     public void empty();
>     public Map<String, Integer> getItems();
> }
>
> The Test Code:
>     @Test
>     public void testCartService(){
>         CartService cart = hex.getService(CartService.class,
> "CartComponent/CartService");
>         assertNotNull(cart);
>         cart.empty();
>     }
>
>
>
> --
> Cheers
> Jun Jie Nan
>   ∧ ∧��
> ミ^ō^ミ灬)~
>

Hi JunJie

I looks like you've found a bug. Can you raise a JIRA for this and I'll take
a look at it.

Thanks

Simon

Reply via email to