0

我打算使用开发和部署一个简单的 Web 应用程序

  1. EJB 3
  2. JSP 和 servlet
  3. JBoss 7
  4. JPA

我已经对应用程序进行了编码并创建了一个具有以下结构的标准耳朵

出现

|_ lib(包含所有必需的 jar,例如公共日志记录)

|_ 元信息

   |_ application.xml

   |_ jboss-app.xml

|_ app_ejb.jar(包含无状态 EJB、实体、persistence.xml 等...)

|_ app_web.war(jsps、servlet、web.xml 等)

jboss-app.xml :- (库是应用名称)

<!DOCTYPE jboss-app PUBLIC "-//JBoss//DTD J2EE Application 1.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd">
<jboss-app>
    <loader-repository>library:app=ejb3</loader-repository>
</jboss-app>

应用程序.xml:-

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd" version="1.4">

<display-name>library</display-name>

<module>
  <ejb>ejb_library.jar</ejb>
</module>

<module>
    <web>
        <web-uri>web_library.war</web-uri>
        <context-root>web_library</context-root>
    </web>
</module>

</application>

现在当我用 JBoss 7 的管理控制台部署这个耳朵时,似乎已经部署了 web 模块,甚至页面都被命中了。但是,我尝试在 servlet 中注入 EJB(作为使用 @EJB 的实例变量)的应用程序的另一部分失败了。

我部署应用程序的方式似乎存在一些问题。

我试图找到一个可以在 JBoss 中部署应用程序的教程,但我一直坚持到这一步。

有人可以指导我吗?我是第一次使用 JBoss,并不完全了解 JBoss 的特定配置。

4

1 回答 1

0

您正在注入的 EJB,它是否实现了接口?该接口是否已向服务器注册?@Local 或 @Remote。

如果没有,请尝试引入 @Local 接口,然后您的 EJB 实现实现该接口;然后,使用该本地接口注入 EJB 实现。

另外,检查下面的线程;

JBoss 6:将 EJB 注入 servlet

将 EJB 注入 JAX-RS(RESTful 服务)

http://docs.jboss.org/ejb3/docs/tutorial/1.0.0/html/Injecting_EJB_in_Servlets.html

一个愚蠢的想法,但你能重新安排application.xml中的模块声明吗?首先引入 web 模块,然后是 ejb。

  • 模块 -> 网络模块
  • 模块 -> ejb 模块

此外,这也与您的情况有关: http: //docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/ch01s04s02.html

于 2012-06-06T06:34:31.870 回答