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

如果你也在使用 appclient 调用 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, 则应通过浏览器访问 http://<machine 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 文件" 的设置,如下图一样禁用该缓存:

或者继续使用其他 jdk 版本。

评论:

发表一条评论:
该日志评论功能被禁用了。
About

sharps

Search

Categories
Archives
« 四月 2014
星期日星期一星期二星期三星期四星期五星期六
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
今天