在 appclient 中使用注射 EJB (injected EJB) 可能遇到的问题

如果你也在使用 app client 调用 EJB,那么下面两个问题的解决方法可能对你有用:
  • 如果你在 Netbeans 中产生一个 EJB 模块,编译部署到应用服务器上。然后又产生一个 app 客户端项目并在其中通过注射 EJB 方法调用 EJB 模块。运行该 app 客户端会出现如下异常:
com.sun.enterprise.appclient.MainWithModuleSupport <init>
warning: ACC003:application exception threw.
java.lang.NullPointerException
如果你在调试模式下又不会出现此问题。此问题是 Netbeans 的一个 bug, 请见该 bug 的描述。 解决的办法是再产生一个企业应用程序,将上述两模块添加到该应用中。从该应用中运行该 app 客户端即可。如果部署时支持了 Java Web Start, 则应通过浏览器访问 [url]http://<machine[/url] name>:8080/<j2ee context>/<app client context> 来通过 Java Web Start 的方式运行该 app 客户端。
  • 如果你通过Java Web Start 的方式运行该 app 客户端出现下面的异常:
Error launching or running the application
java.lang.ClassNotFoundException: com.sun.enterprise.appclient.MainWithModuleSupport
java.lang.ClassNotFoundException: com.sun.enterprise.appclient.MainWithModuleSupport
   at java.net.URLClassLoader$1.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
此为 jdk1.6.0 u7 特有的问题。解决办法是在 Java Console 修改 "临时 Internet 文件" 的设置,如下图一样禁用该缓存:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章