2014-11-28 2 views
1


У меня есть создать программу EJB с 2 интерфейсами, 1 класса persistente и 1 без гражданства класса, которые реализуют 2 интерфейса (удаленный интерфейс и локальный интерфейс)

После этого я создать Java Client с 1 классом и я добавляю jboss-client.jar в путь к классам клиентского приложения java и jboss-ejb-client.properties файлов. Но когда я запускаю java-клиент, он генерирует ошибку.javax.naming.NoInitialContextException 2

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

ClientEJB.java

package main; 
    import java.util.Properties; 

    import javax.naming.*; 
    import javax.naming.InitialContext; 
    import javax.naming.NamingException; 

    import metier.ICatalogueRemote; 
    import metier.Produit; 


    public class ClientEJB { 
     public static void main(String[] args) { 
      try{ 
      Properties p = new Properties(); 
      p.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); 
      Context ctx = new InitialContext(p); 
      ICatalogueRemote stub = (ICatalogueRemote) ctx.lookup("ejb:/CatalogueEJB/CAT!metier.ICatalogueRemote"); 

      stub.addProduit(new Produit("HP",8000)); 
      stub.addProduit(new Produit("Clé usb ZTE", 5000)); 
      stub.addProduit(new Produit("HP ProBook 4700", 10000)); 

      }catch(NamingException ex){ 
       ex.printStackTrace(); 
      } 
     } 
    } 

# jboss-ejb-client.properties 
# 
endpoint.name=client-endpoint 
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false 
remote.connections=default 
remote.connection.default.host=127.0.0.1 
remote.connection.default.port = 1234 
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false 
#remote.connection.default.username=root 
#remote.connection.default.password= 

ERROR MESSAGE GENERATE, когда я запускаю приложение

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source) 
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source) 
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source) 
    at javax.naming.InitialContext.lookup(Unknown Source) 
    at main.ClientEJB.main(ClientEJB.java:18) 
+0

Взгляните на этот вопрос, возможно, может вам помочь. http://stackoverflow.com/questions/6387238/what-does-javax-naming-noinitialcontextexception-mean –

ответ

1

вам понадобится еще один jndi.properties файл в том числе ниже код

java.naming.factory.url.pkgs=org.jboss.ejb.client.naming 
java.naming.provider.url=remote://cie-pftestvm2:4447 
java.naming.security.principal=jmstest 
[email protected]