https://issues.apache.org/jira/browse/TOMEE-207

- Romain


2012/5/30 Romain Manni-Bucau <[email protected]>

> Hi,
>
> you speak about rest services right?
>
> you are right but if you use an ejb instead it should be fine.
>
> I'll have a look soon on this topic
>
> - Romain
>
>
>
> 2012/5/30 tom <[email protected]>
>
>> Hi,
>>
>> I am using apache-tomee-1.0.0-plus(clean, no additional jars) and while
>> playing around with some dependency injection I stumbled upon a strange
>> behavior:
>>
>> The method annotated with @PostConstruct gets called before the variables
>> are injected. According to the @PostConstruct JavaDoc it should be the
>> other
>> way around.
>>
>> So the Dependency Injection and the PostConstruct work, but I can't think
>> of
>> a way to change the order.
>>
>> At this moment I don't have a way to upload my war file, so I´ll just list
>> what my project contains so far:
>>
>> It is a maven-archetype-webapp project
>>
>> The web.xml looks like this:
>>
>> <web-app xmlns="http://java.sun.com/xml/ns/javaee";
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
>> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";
>>        metadata-complete="false" version="2.5">
>>
>>        <display-name>OpenEJB REST Example</display-name>
>>
>>        <filter>
>>                <filter-name>TestFilter</filter-name>
>>                <filter-class>a.b.c.TestFilter</filter-class>
>>                <init-param>
>>                        <param-name>testfilter</param-name>
>>                        <param-value>testfilter</param-value>
>>                </init-param>
>>        </filter>
>>
>>        <filter-mapping>
>>                <filter-name>TestFilter</filter-name>
>>                <url-pattern>/*</url-pattern>
>>        </filter-mapping>
>>
>> </web-app>
>>
>> Whereas the filter actually does nothing.
>>
>> The class containing @PostConstruct:
>>
>> package a.b.c;
>>
>> import javax.annotation.PostConstruct;
>> import javax.inject.Inject;
>> import javax.ws.rs.GET;
>> import javax.ws.rs.Path;
>>
>> @Path("hello")
>> public class Hello {
>>
>>    @Inject
>>    private Greeting mGreeting;
>>
>>    @PostConstruct
>>    public void init(){
>>        String tmp = "test";
>>    }
>>
>>    @GET
>>    public String hello(){
>>        if(mGreeting == null){
>>            return "Well, it still doesn't work...";
>>        }else{
>>            return mGreeting.greet();
>>        }
>>    }
>> }
>>
>> The String tmp = "test" is just there so I can set a breakpoint.
>>
>>
>> And the injected Greeting class:
>>
>> package a.b.c;
>>
>> public class Greeting {
>>
>>    public String greet(){
>>        return "Greetings";
>>    }
>> }
>>
>> So maybe I am doing something completely wrong here. ^^
>>
>> Thanks in advance :)
>>
>> --
>> View this message in context:
>> http://openejb.979440.n4.nabble.com/PostConstruct-method-called-before-injection-occurred-tp4655229.html
>> Sent from the OpenEJB User mailing list archive at Nabble.com.
>>
>
>

Reply via email to