【发布时间】: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?
【问题讨论】: