Hmm servlet arent passivationcapable for you?

If so tomee integration holds the bug, not owb
Le 10 mai 2013 23:12, "Romain Manni-Bucau" <[email protected]> a écrit :

> It is a normal failure, see cdi-140
> Le 10 mai 2013 23:03, "Arne Limburg" <[email protected]> a
> écrit :
>
>> Hi David,
>>
>> Do I read the log correctly and SimpleServlet is @Dependent? Is
>> SimpleServlet injected into a passivation-capable bean?
>> If not, I agree with you that this is a bug.
>>
>>
>> Cheers,
>> Arne
>>
>> Am 10.05.13 22:55 schrieb "David Blevins" unter <[email protected]
>> >:
>>
>> >Since the upgrade to 1.2.0 in we have a test failure.  There's a servlet
>> >with constructor injection like so:
>> >
>> >
>> >    @Inject
>> >    public SimpleServlet(Car car) {
>> >        this.car = car;
>> >    }
>> >
>> >And Car looks like so:
>> >
>> >    public class Car {
>> >        private final String make = "Lexus", model = "IS 350";
>> >        private final int year = 2011;
>> >
>> >        public String drive(String name) {
>> >            return name + " is on the wheel of a " + year + " " + make +
>> >" " + model;
>> >        }
>> >    }
>> >
>> >All deploys fine and everything is injected as expected.  Now the
>> >problem.  If you introduce a producer, it fails saying Car is not
>> >passivation capable as required by the SimpleServlet injection point.
>> >
>> >    public class Car {
>> >        private final String make = "Lexus", model = "IS 350";
>> >        private final int year = 2011;
>> >
>> >        public Car(String ignore) {
>> >        }
>> >
>> >        public String drive(String name) {
>> >            return name + " is on the wheel of a " + year + " " + make +
>> >" " + model;
>> >        }
>> >    }
>> >
>> >    public class Foo {
>> >
>> >        @Produces @Default
>> >        public Car car() {
>> >            return new Car("foo");
>> >        }
>> >    }
>> >
>> >
>> >javax.enterprise.inject.IllegalProductException: A producer method or
>> >field of scope @Dependent returns an unserializable object for injection
>> >into an injection point Constructor Injection Point, constructor name :
>> >org.apache.openejb.arquillian.tests.cdi.constructor.SimpleServlet, Bean
>> >Owner : [SimpleServlet, Name:null, WebBeans Type:DEPENDENT, API
>>
>> >Types:[java.io.Serializable,java.lang.Object,javax.servlet.ServletConfig,o
>>
>> >rg.apache.openejb.arquillian.tests.cdi.constructor.SimpleServlet,javax.ser
>>
>> >vlet.http.HttpServlet,javax.servlet.Servlet,javax.servlet.GenericServlet],
>> >
>> >Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]]
>> >that requires a passivation capable dependency
>> >       at
>>
>> >org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.ja
>> >va:108)
>> >       at
>>
>> >org.apache.webbeans.inject.InjectableConstructor.doInjection(InjectableCon
>> >structor.java:80)
>> >       at
>>
>> >org.apache.webbeans.portable.InjectionTargetImpl.newInstance(InjectionTarg
>> >etImpl.java:253)
>> >       at
>>
>> >org.apache.webbeans.portable.InjectionTargetImpl.produce(InjectionTargetIm
>> >pl.java:180)
>> >       at
>>
>> >org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:
>> >119)
>> >
>> >There's debate as if the test is bad or if the check is incorrect.  Seems
>> >like an OWB bug to me.
>> >
>> >Thoughts?
>> >
>> >
>> >-David
>> >
>>
>>

Reply via email to