2015-05-06 4 views
1

я сделал заявление в wildly 8.1.0, которая использует EJB удаленный компонент сеанса, но когда я сделать поиск я получаю эту ошибку:Ошибка в wildfly 8.1.0 делает EJB удаленного вызова

EJBCLIENT000025: No EJB receiver available for handling [appName:rb, moduleName:remot, distinctName:] combination for invocation context [email protected] 

Я сконфигурированный файл application.xml и module.xml для использования имени приложения "rb" и имени модуля "remot". При запуске сервера, он запускается без ошибок, и развертывает EJB, поэтому я думаю, что проблема в клиенте, это код клиента:

@SuppressWarnings({ "rawtypes", "unchecked" }) 
    private static void busquedaServidor(Server.DatosRegistro datos) throws NamingException 
    {   
     final Hashtable jndiProperties = new Hashtable(); 
     jndiProperties.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming); 
     final Context context = new InitialContext(jndiProperties); 

     final String appName = "rb"; 

     final String moduleName = "remot"; 

     final String distinctName = ""; 

     final String beanName = Ejb.class.getSimpleName(); 

     final String viewClassName = EjbRemote.class.getName(); 

     String url = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName; 
     //ejb:rb/remot//Ejb!Server.EjbRemote 

     System.out.println(url); 
     EjbRemote envio= (EjbRemote) context.lookup(url); 
     envio.datosRegistro(datos);** 
    } 

Может быть, ошибка в отчетливом имени, это пусто, спасибо за вашу помощь.

ответ

0

У меня была такая же проблема на wildfly 10.1. Я решил заменить «ejb:» на «/». В вашем случае:

String url = "/" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName; 

И удаленный контекст получили с:

Properties properties = new Properties(); 
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); 
properties.put(Context.PROVIDER_URL, "http-remoting://" + host + ":" + port); 
properties.put("jboss.naming.client.ejb.context", "true"); 
properties.put(Context.SECURITY_PRINCIPAL, "adminapp"); 
properties.put(Context.SECURITY_CREDENTIALS, "adminpwd"); 

ИСТОЧНИК: https://blog.akquinet.de/2014/09/26/jboss-eap-wildfly-three-ways-to-invoke-remote-ejbs/

Надеется, что это помогает.

Смежные вопросы