zoukankan      html  css  js  c++  java
  • JAVA CDI 学习(5)

    RESTFul Service中如果要注入EJB实例,常规的@Inject将不起作用,在Jboss中,应用甚至都启动不起来(因为@Inject注入失败),解决方法很简单:将@Inject换成@EJB

    参考代码:

    CityInvoker是一个Stateless的EJB

    package test;
    
    import javax.ejb.Stateless;
    import ...
    
    @Stateless
    public class CityInvoker {
    
        public CityResponse getCity() {
            CityResponse cityResponse = null;
            CityService cityService = ApplicationContextUtils.getCityService();
            try {
                cityResponse = cityService.findCityByCode(RequestBuilder
                        .buildCityFindRequest());
            } catch (LMSException e) {
                e.printStackTrace();
            }
            return cityResponse;
        }
    ...
    

    下面是在RESTFul Service中注入的示例:

    package test.rest;
    
    import javax.ejb.EJB;
    import javax.ws.rs.*;
    import javax.ws.rs.core.MediaType;
    import javax.xml.bind.JAXBElement;
    import javax.xml.namespace.QName;
    
    
    @Path("/")
    public class TestService {
    
        final String XMLNS_NAMESPACE = "http://yjmyzz.cnblogs.com/rest/service";
        final String ROOT_NODE = "root";
    
        @EJB
        CityInvoker cityInvoker;
    
        @GET
        @Path("/findCity")
        @Produces(MediaType.APPLICATION_XML)
        public JAXBElement<CityDto> findCity() {
            JAXBElement<CityDto> result = new JAXBElement<CityDto>(new QName(
                    XMLNS_NAMESPACE, ROOT_NODE), CityDto.class, cityInvoker
                    .getCity().getCities().get(0));
            return result;
        }
    ...
    
  • 相关阅读:
    Redis安装-Redis常用命令-redis.conf配置信息总结
    JVM--心得 OOM时的堆信息获取与分析
    JVM--心得 堆栈区域和GC的设置
    JVM--心得(加载 链接 初始化)
    JVM--心得概念
    我的Python之路:找一个幸运数
    springboot模板
    spring boot入门
    java自定义注解
    git集成idea
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/how-to-inject-a-EJB-instance-to-RESTFul-Service.html
Copyright © 2011-2022 走看看