2009년 8월 28일 금요일

Resource Injection using Annotation - Java EE5

In web application.

 

      Container-managed object에만 사용할 수 있다.

            - container가 생성을 관리할 수 있어야 injection을 할 수있기 때문.

            - 따라서 일반 Javabean에서는 사용할 수 없다. 그러나 JavaServer Faces에서 사용하는 bean에는 사용할 수 있다.

 

      Resource injection JSP에 사용할 수 없다.

            - Resource Injection을 위한 annotaion deployment time에 적용되기 때문에 JSP에서는 사용할 수 없다.

 

Table 3-1 Web Components That Accept Resource Injections

Component

Interface/Class

Servlets

javax.servlet.Servlet

Servlet Filters

javax.servlet.ServletFilter

Event Listeners

javax.servlet.ServletContextListener

javax.servlet.ServletContextAttributeListener

javax.servlet.ServletRequestListener

javax.servlet.ServletRequestAttributeListener

javax.servlet.http.HttpSessionListener

javax.servlet.http.HttpSessionAttributeListener

Taglib Listeners

Same as above

Taglib Tag Handlers

javax.servlet.jsp.tagext.JspTag

Managed Beans

Plain Old Java Objects

 

Declaring Resource References

 

@Resource annotation deployment descriptor 내의 resource-ref element와 동일하다.

 

@Resource javax.sql.DataSource catalogDS;

public getProductsByCategory() {

// get a connection and execute the query

Connection conn = catalogDS.getConnection();

..

}

 

@Resources ({
    @Resource (name="myDB" type=java.sql.DataSource),
    @Resource(name="myMQ" type=javax.jms.ConnectionFactory)
})

 

 

Declaring a Reference to a Web Service

The @WebServiceRef annotation provides a reference to a web service. The following example shows uses the @WebServiceRef annotation to declare a reference to a web service. WebServiceRef uses the wsdlLocation element to specify the URI of the deployed services WSDL file:

...
import javax.xml.ws.WebServiceRef;
...
public class ResponseServlet extends HTTPServlet {
@WebServiceRef(wsdlLocation=
    "http://localhost:8080/helloservice/hello?wsdl")
static HelloService service;

댓글 없음:

댓글 쓰기