在 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 文件" 的設置,如下圖一樣禁用該緩存:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章