2010-08-01 23 views
5

Tengo problemas para implementar la aplicación de elevación con enterprise java beans. Hay un ejemplo sencillo:elevación con enterprise java beans

@Stateless 
class TestEJB { 
def a = "hello" 
} 

object TestApi extends XMLApiHelper{ 
@EJB 
private var bean:TestEJB = _ 
def createTag(a:NodeSeq) = 
def dispatch: LiftRules.DispatchPF = { 
    case Req("test" :: Nil, "", GetRequest) => 
    () => PlainTextResponse(bean.a) 
} 
} 

Hay NullPointerException en línea con bean.a, por lo que eso significa, que el bean no se han inicializado bien. ¿Por qué?

Respuesta

2

No apto para elevadores, pero @EJB está disponible de forma estándar solo para servlet, filtro, detector de contexto, beans administrados jsf, ejbs, webbeans y otros componentes Java EE. Tenga en cuenta que las clases JSP, debido a su generación/compilación dinámica, no son elegibles para usar @EJB y, en su lugar, deben buscar EJB aunque técnicamente cuenten como un servlet en tiempo de ejecución.

Como alternativa a la inyección, puede usar la búsqueda. Si se encuentra en un servidor Java EE 6, cualquier código de Java puede buscar el EJB a través de su nombre JNDI estándar "java: global".