在Netbeans之外运行企业应用程序客户端

时间:2016-09-30 13:54:40

标签: java java-ee

我已按照此网页上的教程进行操作:https://netbeans.org/kb/docs/javaee/entappclient.html

我想在Netbeans之外运行企业应用程序客户端。请注意,企业应用程序客户端与Web客户端不同,即它是应用程序客户端。

我尝试执行以下命令:

set classpath = C:\ GenieDevelopment \ NetBeansProjects \ RemoteInterface \ EJBRemote \ dist \ EJBRmote.jar cd C:\ Program Files \ glassfish-4.0 \ glassfish \ bin Appclient -client C:\ NetBeansProjects \ RemoteInterface \ ClientTest \ dist \ ClientTest.jar

我得到的错误是:

Oct 04, 2016 7:59:32 PM org.glassfish.apf.impl.DefaultErrorHandler error
SEVERE: Class [ Ltest/TestEJBRemote; ] not found. Error while loading [ class cl
ienttest.Main ]
Exception in thread "main" java.lang.NoClassDefFoundError: test/TestEJBRemote
        at clienttest.Main.main(Main.java:24)
Caused by: java.lang.ClassNotFoundException: test.TestEJBRemote
        at java.net.URLClassLoader.findClass(Unknown Source)
        at org.glassfish.appclient.client.acc.ACCClassLoader.findClass(ACCClassL
oader.java:237)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 1 more

有什么问题?远程接口位于类路径中。

2 个答案:

答案 0 :(得分:0)

类路径不考虑您列出的目录中的JAR文件。它将使用类路径中明确给出的JAR文件,以及列出的目录中的.class个文件;但不是目录中的JAR文件。如果要将JAR文件包含在目录中,则需要使用通配符:

java -cp "EntAppClient.jar;C:\jardirectory\*" ...

这将包括该目录中的所有文件,如果这些文件是JAR,它将全部挑选它们。

如果您希望能够构建应用程序,然后在IDE之外部署和运行它们,我强烈建议您使用Maven来控制依赖项,并允许您在一个位置构建包含所有依赖项的胖JAR。你以后会为自己省去很多麻烦。

答案 1 :(得分:0)

您需要在网络服务器(如tomcat或glassfish)甚至Google AppEngine中运行J2EE应用程序。通常,您生成上载到Web服务器的.WAR文件。对于tomcat,您打开http://localhost:8080/manager/html然后上传.war文件,然后http://localhost:8080/myapp将显示您的webapp。