У меня есть создать программу 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)
Взгляните на этот вопрос, возможно, может вам помочь. http://stackoverflow.com/questions/6387238/what-does-javax-naming-noinitialcontextexception-mean –