【问题标题】:Are all EJBs deployed as JAR?所有 EJB 都部署为 JAR 吗?
【发布时间】:2018-04-25 00:09:29
【问题描述】:

查看 Netbeans 如何使用 ant 构建企业应用程序并打包为 EAR 文件时:

library-inclusion-in-manifest:
     [copy] Copying 1 file to /home/thufir/NetBeansProjects/netbeansEnterpriseApp/build/lib

-do-ear-dist:
    [mkdir] Created dir: /home/thufir/NetBeansProjects/netbeansEnterpriseApp/netbeansEnterpriseApp-ejb/dist
      [jar] Building jar: /home/thufir/NetBeansProjects/netbeansEnterpriseApp/netbeansEnterpriseApp-ejb/dist/netbeansEnterpriseApp-ejb.jar

-post-dist:

dist-ear:

pre-pre-compile:

pre-compile:

-do-compile-deps:
     [copy] Copying 1 file to /home/thufir/NetBeansProjects/netbeansEnterpriseApp/build

do-compile:
     [copy] Copying 1 file to /home/thufir/NetBeansProjects/netbeansEnterpriseApp/build/META-INF

post-compile:

compile:

pre-dist:

do-dist-without-manifest:

do-dist-with-manifest:
    [mkdir] Created dir: /home/thufir/NetBeansProjects/netbeansEnterpriseApp/dist
      [jar] Building jar: /home/thufir/NetBeansProjects/netbeansEnterpriseApp/dist/netbeansEnterpriseApp.ear

post-dist:

dist:

BUILD SUCCESSFUL
Total time: 1 second
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp$ 
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp$ tree
.
├── build
│   ├── lib
│   │   └── netbeansRemoteInterface.jar
│   ├── META-INF
│   │   └── MANIFEST.MF
│   └── netbeansEnterpriseApp-ejb.jar
├── build.xml
├── dist
│   └── netbeansEnterpriseApp.ear
├── nbproject
│   ├── ant-deploy.xml
│   ├── build-impl.xml
│   ├── genfiles.properties
│   ├── private
│   │   └── private.properties
│   ├── project.properties
│   └── project.xml
├── netbeansEnterpriseApp-ejb
│   ├── build
│   │   ├── classes
│   │   │   ├── ejb
│   │   │   │   └── NewSessionBean.class
│   │   │   ├── META-INF
│   │   │   │   └── MANIFEST.MF
│   │   │   └── netbeansRemoteInterface.jar
│   │   ├── empty
│   │   └── generated-sources
│   │       └── ap-source-output
│   ├── build.xml
│   ├── dist
│   │   └── netbeansEnterpriseApp-ejb.jar
│   ├── nbproject
│   │   ├── ant-deploy.xml
│   │   ├── build-impl.xml
│   │   ├── genfiles.properties
│   │   ├── private
│   │   │   └── private.properties
│   │   ├── project.properties
│   │   └── project.xml
│   └── src
│       ├── conf
│       │   └── MANIFEST.MF
│       └── java
│           └── ejb
│               └── NewSessionBean.java
└── src
    └── conf
        └── MANIFEST.MF

23 directories, 25 files
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp$ 
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp$ asadmin deploy dist/netbeansEnterpriseApp.ear 
Application deployed with name netbeansEnterpriseApp.
Command deploy executed successfully.
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp$ 
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp$ asadmin list-applications
netbeansEnterpriseApp  <ear, ejb>  
Command list-applications executed successfully.
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp$ cd dist/
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp/dist$ 
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp/dist$ ls
netbeansEnterpriseApp.ear
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp/dist$ 
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp/dist$ jar xf netbeansEnterpriseApp.ear 
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp/dist$ 
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp/dist$ ll
total 40
drwxr-xr-x 4 thufir thufir 4096 Nov 11 19:29 ./
drwxrwxr-x 7 thufir thufir 4096 Nov 11 19:28 ../
drwxr-xr-x 2 thufir thufir 4096 Nov 11 19:28 lib/
drwxr-xr-x 2 thufir thufir 4096 Nov 11 19:28 META-INF/
-rw-r--r-- 1 thufir thufir 2834 Nov 11 19:28 netbeansEnterpriseApp.ear
-rw-r--r-- 1 thufir thufir 1351 Nov 11 19:28 netbeansEnterpriseApp-ejb.jar
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp/dist$ 
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp/dist$ ll lib/
total 20
drwxr-xr-x 2 thufir thufir 4096 Nov 11 19:28 ./
drwxr-xr-x 4 thufir thufir 4096 Nov 11 19:29 ../
-rw-r--r-- 1 thufir thufir  782 Nov 11 19:28 netbeansRemoteInterface.jar
thufir@dur:~/NetBeansProjects/netbeansEnterpriseApp/dist$ 

我注意到,当部署到 Glassfish 时,EAR 和 EJB 都会被列出。就其本身而言,EJB 是 packaged 作为 JAR 吗?没有将 EJB 打包为 EAR 之类的东西吗? (相反,任何封装在 EAR 或 WAR 中的 EJB 最终都会部署为 JAR ——据我所知。)

或者,是否存在不部署为 JAR 文件的 EJB?

【问题讨论】:

    标签: jar glassfish ejb war ear


    【解决方案1】:

    是的,如果您的应用服务器(如 jboss7 和 wildfly)支持,则 WAR 中的 EJB 不需要打包为 Jar。 ejb-classes 可以在 WAR 中的 WEB-INF/classes 中找到。

    您可以在ejb-cdi-unit-test-war 找到一个用于测试的示例项目。如果您尝试克隆,您将需要 maven 来构建项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 2011-10-28
      • 2011-04-09
      相关资源
      最近更新 更多