首页 > 其他 > 详细

手动打war包

时间:2014-04-12 00:42:16      阅读:535      评论:0      收藏:0      [点我收藏+]
  • 背景

 有三个类,一个是Servlet类,两个Service类。要求将一个Service编程为class,将另一个Service打包为jar包。Servlet类是继承自HttpServlet类的。

源代码目录结构如下:

├── client
│   └── HelloWorldService.java
├── service
│   └── Service.java
└── service2
    └── Service2.java

 

  • war包结构

 目标war包结构如下:

bubuko.com,布布扣
WEB-INF
    ├── classes
    │   ├── client
    │   │   └── HelloWorldService.class
    │   └── service2
    │       └── Service2.class
    ├── lib
    │   └── service.jar
    └── web.xml
bubuko.com,布布扣

说明:目录名classes和lib都是固定名称,不能更改。不能在浏览器直接访问WEB-INF下的文件。一般将css和images放在WEB-INF外面。由于所有的class文件都有package,所以package同样需要在包里面。jar包里面同样包含service路径,以及service下面的Service.class文件。

  • 打包过程
    • 编译:将所有的java文件编译为class文件,并与源代码分开,放在out文件夹下。因为HelloWorldService.java依赖servlet-api.jar文件,我将这个jar文件放在与client平级的地方,便于编译。

命令如下:

mkdir out
javac -cp servlet-api.jar:. -d out client/HelloWorldService.java

-cp指定依赖的地址,点是指当前路径,-d是将源码与class文件分开,out是放class文件的文件夹,HelloWorldService.java是需要被编译的源文件。

编译后的目录结构:

bubuko.com,布布扣
├── client
│   ├── Client.java
│   └── HelloWorldService.java
├── out
│   ├── client
│   │   └── HelloWorldService.class
│   ├── service
│   │   └── Service.class
│   └── service2
│       └── Service2.class
├── service
│   └── Service.java
├── service2
│   └── Service2.java
└── servlet-api.jar
bubuko.com,布布扣

 

    • 整理待打包内容
bubuko.com,布布扣
mkdir WEB-INF
cd WEB-INF/
mkdir classes/client
mkdir classes/service2
mkdir lib
cd ../out
cp -r client/HelloWorldService.class ../WEB-INF/classes/client/
cp -r service2/Service2.class ../WEB-INF/classes/service2/
jar -cf service.jar service
cp -r service.jar ../WEB-INF/lib/
cd ../
cp web.xml WEB-INF/
bubuko.com,布布扣

整理后的WEB-INF的目录结构如下:

bubuko.com,布布扣
WEB-INF
    ├── classes
    │   ├── client
    │   │   └── HelloWorldService.class
    │   └── service2
    │       └── Service2.class
    ├── lib
    │   └── service.jar
    └── web.xml
bubuko.com,布布扣

 

    • 打包为war包

在于WEB-INF同级的目录下运行如下打包命令:

jar -cf hello.war WEB-INF/

hello.war是包的名称,必须只能把WEB-INF整个打包。

  • 发布到tomcat

 将hello.war拷贝到tomcat的webapps下面,启动tomcat,然后打开页面localhost:8080/hello/helloworld就可以验证是否打包成功了(我的web.xml里面配置的是helloworld)。

 

手动打war包,布布扣,bubuko.com

手动打war包

原文:http://www.cnblogs.com/liqing172/p/3658494.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!