【发布时间】:2017-07-05 13:24:00
【问题描述】:
我正在阅读一本关于“Java EE 7 for Glassfish”的书,服务器安装在 Fedora Linux 上。
我在服务器上部署了一个简单的无状态会话 bean SimpleSessionBean,我正在尝试通过 SessionBeanClient 和 Glassfish 命令行工具 appclient 接近该 SimpleSessionBean,运行客户端 jar。书中的一切,所以它应该工作。但是客户端找不到 SimpleSessionBean。显然是类路径问题。在服务器日志中没有发生任何事情。
我找不到如何正确安装 Glassfish 的任何指示。一切都在服务器内工作。我可以通过在浏览器中运行的 facelets 访问已安装的 war 文件。
这可能是正确设置 $PATH 或其他一些环境变量的问题。有没有相关文献的指点?
提前感谢您的任何建议!
UPDATE1:错误信息
从我运行 appclient 的 bash 终端窗口:
[fedora@localhost bin]$ ./appclient -client /home/fedora/Downloads/6886EN_04_Code/ch04_src/simplesessionbeanclient/target/simplesessionbeanclient.jar
2017 年 7 月 6 日下午 12:52:57 org.glassfish.apf.impl.DefaultErrorHandler 错误 严重:类 [ Lnet/ensode/glassfishbook/SimpleSession; ] 未找到。
加载 [ class net.ensode.glassfishbook.SessionBeanClient ] 时出错 线程“主”java.lang.NoClassDefFoundError 中的异常:net/ensode/glassfishbook/SimpleSession 在 net.ensode.glassfishbook.SessionBeanClient.invokeSessionBeanMethods(SessionBeanClient.java:12) 在 net.ensode.glassfishbook.SessionBeanClient.main(SessionBeanClient.java:19) 引起:java.lang.ClassNotFoundException:net.ensode.glassfishbook.SimpleSession 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 org.glassfish.appclient.client.acc.ACCClassLoader.findClass(ACCClassLoader.java:237) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)
UPDATE2:来自 Glassfish 书:
我们正在使用 Maven 来构建我们的代码。对于这个例子,我们使用 Maven Assembly 插件 (http://maven.apache.org/plugins/maven-assembly-plugin/) 用于构建客户端 JAR 文件 包括所有依赖项;这使我们不必指定 -classpath 命令行选项中的所有相关 JAR 文件 appclient 实用程序的。要构建这个 JAR 文件,只需调用 mvn 组装:从命令行组装。
解决方案:可以说,缺少的链接是生成带有附加 jar 的“on board”的客户端 jar。进行如下操作(至少在 Eclipse 中):选择 pom.xml > 右键单击 > Run As > Maven build... > 在目标字段中输入:assembly:assembly> Apply/Run。
结果将是您将在目标文件夹下找到两个 jar:xxxclient.jar 和 xxxclient-jar-with-dependencies.jar。 从 bash 中的命令行从带有后一个 jar 的文件夹中执行:
/path_to/appclient -client xxxclient-jar-with-dependencies.jar
经过很长时间的等待(在我 200 美元的迷你 Linux 机器上),HelloWorld-ish 服务器 EJB 终于被正确调用了。
【问题讨论】:
-
"客户端却找不到 SimpleSessionBean。"错误信息是什么?
-
“显然是类路径问题”为什么?
-
有关错误消息,请参阅原始问题帖子中的 UPDATE1。