JBoss 7.1上的Java Web应用程序部署

JBoss 7.1上的Java Web应用程序部署,jboss,Jboss,我打算使用 EJB3 JSP和servlet JBoss7 JPA 我已经编写了应用程序,并创建了具有以下结构的标准ear app.ear |_具有所有必需JAR的lib,如commons日志记录 |_META-INF |_ application.xml |_ jboss-app.xml |_app_ejb.jar包含一个无状态ejb、一个实体、persistence.xml等 |_app_web.war JSP、servlet、web.xml等 jboss-app.xml:-

我打算使用

EJB3 JSP和servlet JBoss7 JPA 我已经编写了应用程序,并创建了具有以下结构的标准ear

app.ear

|_具有所有必需JAR的lib,如commons日志记录

|_META-INF

   |_ application.xml

   |_ jboss-app.xml
|_app_ejb.jar包含一个无状态ejb、一个实体、persistence.xml等

|_app_web.war JSP、servlet、web.xml等

jboss-app.xml:-library是应用程序名称

<!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>
application.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>
现在,当我使用JBoss7的管理控制台部署这个ear时,web模块似乎已经部署,甚至页面也被命中。但是,应用程序的另一部分失败了,我尝试使用@EJB将EJB作为实例变量注入servlet

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

我试图找到一个教程,在那里我可以在JBoss中部署这个应用程序,但是我一直坚持到现在


有人能给我指点一下吗?我是第一次使用JBoss,并没有完全了解JBoss特定的配置。

您正在注入的EJB是否实现了接口?该接口是否已向服务器注册@本地或远程

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

同时,检查下面的螺纹

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

模块->web模块 模块->ejb模块 此外,这也与您的情况有关:

您好,Nav Khan,谢谢您的回复。我浏览了您提供的链接,发现我以与前面解释的相同的方式实现了代码。唯一缺少的是无状态Bean的@Remote注释中的接口类名。尽管指定了它,bean不会注入servlet。你能想到什么问题吗?忘了指定一个要点。如果EJB的源代码与web war一起提供,则EJB将成功注入。但是,如果我为客户机jar提供bean实现的接口,则不会注入EJB。这种方法有什么问题吗?您是如何生成ear文件的?您是否使用了EclipseEE应用程序向导?或者你自己把它放在一起?当你在同一个JVM中访问EJB时,也可以将Remote改为@Local,只不过是同一个服务器或容器用另一种想法编辑了我的回复。。。以防万一,如果你仍然试图解决这个问题