2015-05-30 2 views
0

Развертывание приложения EJB с инструментами Eclipse на JBOSS 7.1
Какой формат искомой строки используется.JBOSS JNDI Поиск без учета состояния bean String

Я принял взглянуть на документы, но я получаю действительно путают

context.lookup("ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName); 

Можете ли вы помочь?

ответ

0

Когда EJB развернут (например, когда EJB развернут на сервер или сервер перезапускается), вы должны увидеть что-то вроде этого на выходе:

2015 Jun 07, 18:07:24.352 (MSC service thread 1-4) INFO - (AbstractDeploymentUnitService.java:66) start - JBAS015876: Starting deployment of "_ExampleEjbProject.war" 
2015 Jun 07, 18:07:24.463 (MSC service thread 1-4) INFO - (EjbJndiBindingsDeploymentUnitProcessor.java:182) setupJNDIBindings - JNDI bindings for session bean named SayHelloEjb in deployment unit deployment "_ExampleEjbProject.war" are as follows: 

    java:global/_ExampleEjbProject/SayHelloEjb!org.yaorma.examples.ejb.server.local.SayHelloLocal 
    java:app/_ExampleEjbProject/SayHelloEjb!org.yaorma.examples.ejb.server.local.SayHelloLocal 
    java:module/SayHelloEjb!org.yaorma.examples.ejb.server.local.SayHelloLocal 
    java:global/_ExampleEjbProject/SayHelloEjb!org.yaorma.examples.ejb.server.remote.SayHelloRemote 
    java:app/_ExampleEjbProject/SayHelloEjb!org.yaorma.examples.ejb.server.remote.SayHelloRemote 
    java:module/SayHelloEjb!org.yaorma.examples.ejb.server.remote.SayHelloRemote 
    java:jboss/exported/_ExampleEjbProject/SayHelloEjb!org.yaorma.examples.ejb.server.remote.SayHelloRemote 

Это список строк, которые могут использоваться в разных контекстах для строки поиска jndi. В этом случае мое имя проекта - _ExampleEjbProject, нет подмодуля, класс bean (реализация) аннотируется с этим «@Stateless (name =« SayHelloEjb »)», чтобы указать имя ejb, а локальные и удаленные интерфейсы - org.yaorma.examples.ejb.server.local.SayHelloLocal "и" org.yaorma.examples.ejb.server.remote.SayHelloLocal "соответственно. Строки подстановки следуют модели:

<project_name>/<submodule>/<EJB_name>!<interface_name>. 

От отдельного приложения Я могу подключиться, используя эту строку:

/_ExampleEjbProject/SayHelloEjb!org.yaorma.examples.ejb.server.remote.SayHelloRemote 

Как это:

public static void main(String[] args) throws Exception { 
     Properties jndiProperties = new Properties(); 
     String providerURL = "remote://localhost:7447"; 
     jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, org.jboss.naming.remote.client.InitialContextFactory.class.getName()); 
     jndiProperties.put(Context.PROVIDER_URL, providerURL); 
     jndiProperties.put("jboss.naming.client.ejb.context", true); 
     jndiProperties.put(Context.SECURITY_PRINCIPAL, MY_UID); 
     jndiProperties.put(Context.SECURITY_CREDENTIALS, MY_PWD); 
     InitialContext context = new InitialContext(jndiProperties); 
     testLookup(context, "/_ExampleEjbProject/SayHelloEjb!org.yaorma.examples.ejb.server.remote.SayHelloRemote"); 
     System.out.println("Done!"); 
    } 

    private static void testLookup(InitialContext context, String lookupString) throws Exception { 
     Object obj = context.lookup(lookupString); 
     SayHelloRemote sayHelloRemote = (SayHelloRemote) obj; 
     String msg = sayHelloRemote.sayHello("John"); 
     System.out.println(msg); 
    } 
Смежные вопросы