Netbeans, Glassfish. EJB3 бин.
Отдельно сделал клиент. Использую вот этот мануал:
https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html
В classpath добавил gf-client.jar, код клиента:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package helloclient;
import com.myexample.HelloWorldBeanRemote;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
*
* @author darq
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws NamingException {
HelloWorldBeanRemote helloBean = (HelloWorldBeanRemote) new InitialContext().lookup("java:global/HelloEJB/HelloWorldBean");
System.out.println(helloBean.sayHelloWorld());
}
}
Если нажать Run прямо в NetBeans, то всё получается:
run:
12.06.2010 19:04:49 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate
Hello World from the remote SERVER
ПОСТРОЕНИЕ УСПЕШНО ЗАВЕРШЕНО (общее время: 7 секунд)
Но если попробовать запустить файл клиента из командной строки, то получаю ошибку:
Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at helloclient.Main.main(Main.java:43)
Caused by: java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.sun.naming.internal.VersionHelper12.loadClass(Unknown Source)
... 5 more
Не подскажете, как исправить?
Здравствуйте, KyberProtagonistes, Вы писали:
KP>Но если попробовать запустить файл клиента из командной строки, то получаю ошибку:
KP>KP>Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory]
KP> at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
KP> at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
KP> at javax.naming.InitialContext.init(Unknown Source)
KP> at javax.naming.InitialContext.<init>(Unknown Source)
KP> at helloclient.Main.main(Main.java:43)
KP>Caused by: java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory
KP> at java.net.URLClassLoader$1.run(Unknown Source)
KP> at java.security.AccessController.doPrivileged(Native Method)
KP> at java.net.URLClassLoader.findClass(Unknown Source)
KP> at java.lang.ClassLoader.loadClass(Unknown Source)
KP> at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
KP> at java.lang.ClassLoader.loadClass(Unknown Source)
KP> at java.lang.Class.forName0(Native Method)
KP> at java.lang.Class.forName(Unknown Source)
KP> at com.sun.naming.internal.VersionHelper12.loadClass(Unknown Source)
KP> ... 5 more
KP>
KP>Не подскажете, как исправить?
Изучить каманду
java, в частности параметр
classpath... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
"Мы будем уничтожать свое ядерное оружие вместе с Америкой" (c) Б. Ельцин
Здравствуйте, 6lackbird, Вы писали:
6>Здравствуйте, KyberProtagonistes, Вы писали:
KP>>Но если попробовать запустить файл клиента из командной строки, то получаю ошибку:
KP>>KP>>Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory]
KP>> at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
KP>> at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
KP>> at javax.naming.InitialContext.init(Unknown Source)
KP>> at javax.naming.InitialContext.<init>(Unknown Source)
KP>> at helloclient.Main.main(Main.java:43)
KP>>Caused by: java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory
KP>> at java.net.URLClassLoader$1.run(Unknown Source)
KP>> at java.security.AccessController.doPrivileged(Native Method)
KP>> at java.net.URLClassLoader.findClass(Unknown Source)
KP>> at java.lang.ClassLoader.loadClass(Unknown Source)
KP>> at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
KP>> at java.lang.ClassLoader.loadClass(Unknown Source)
KP>> at java.lang.Class.forName0(Native Method)
KP>> at java.lang.Class.forName(Unknown Source)
KP>> at com.sun.naming.internal.VersionHelper12.loadClass(Unknown Source)
KP>> ... 5 more
KP>>
KP>>Не подскажете, как исправить?
6>Изучить каманду java, в частности параметр classpath
Я пробовал писать так:
java -cp "c:\glassfishv3\glassfish\modules\gf-client.jar;c:\glassfishv3\glassfish\lib\javaee.jar;c:\glassfishv3\glassfish\lib\appserv-rt.jar;c:\glassfishv3\glassfish\lib\jndi-properties.jar" -jar "C:\Users\KyberProtagonistes\Documents\NetBeansProjects\HelloClient\dist\HelloClient.jar"
Но это не помогает...
Здравствуйте, KyberProtagonistes, Вы писали:
KP>Здравствуйте, 6lackbird, Вы писали:
6>>Здравствуйте, KyberProtagonistes, Вы писали:
KP>>>Но если попробовать запустить файл клиента из командной строки, то получаю ошибку:
KP>>>KP>>>Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory]
KP>>> at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
KP>>> at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
KP>>> at javax.naming.InitialContext.init(Unknown Source)
KP>>> at javax.naming.InitialContext.<init>(Unknown Source)
KP>>> at helloclient.Main.main(Main.java:43)
KP>>>Caused by: java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory
KP>>> at java.net.URLClassLoader$1.run(Unknown Source)
KP>>> at java.security.AccessController.doPrivileged(Native Method)
KP>>> at java.net.URLClassLoader.findClass(Unknown Source)
KP>>> at java.lang.ClassLoader.loadClass(Unknown Source)
KP>>> at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
KP>>> at java.lang.ClassLoader.loadClass(Unknown Source)
KP>>> at java.lang.Class.forName0(Native Method)
KP>>> at java.lang.Class.forName(Unknown Source)
KP>>> at com.sun.naming.internal.VersionHelper12.loadClass(Unknown Source)
KP>>> ... 5 more
KP>>>
KP>>>Не подскажете, как исправить?
6>>Изучить каманду java, в частности параметр classpath
KP>Я пробовал писать так:
KP>KP>java -cp "c:\glassfishv3\glassfish\modules\gf-client.jar;c:\glassfishv3\glassfish\lib\javaee.jar;c:\glassfishv3\glassfish\lib\appserv-rt.jar;c:\glassfishv3\glassfish\lib\jndi-properties.jar" -jar "C:\Users\KyberProtagonistes\Documents\NetBeansProjects\HelloClient\dist\HelloClient.jar"
KP>
KP>Но это не помогает...
com.sun.enterprise.naming.SerialInitContextFactory находится в glassfish\modules\glassfish-naming.jar Попробуйте добавить его в CLASSPATH