JAVA是跨平台的编程语言,服务器的操作系统可以是Windows、Linux或者其它,下面将在RedHat6操作系统下,详细说明JAVA程序在WEB服务器和应用服务器上的部署情况。
1、JAVA程序部署在应用服务器
(1) JAVA程序HelloWorld 在Redhat6上部署的目录结构
bin : 存放shell脚本run.sh
conf :存放配置文件log4j.properties
lib :存放JAR包HelloWorld.jar、log4j-1.2.16.jar
logs:存放程序运行日志文件log.log
(2)编写测试类HelloWorld.java 并打成JAR包HelloWorld.jar
package com.test
import org.apache.log4j.Logger
import org.apache.log4j.PropertyConfigurator
public class HelloWorld {
private static Logger log = Logger.getLogger(HelloWorld.class)
public static void main(String[] args) {
try{
//log4j.properties变量的值在脚本bin/run.sh 中读取
String config = System.getProperty("log4j.properties")
if (config != null) {
PropertyConfigurator.configure(config)
}
log.info("HelloWorld")
Thread thread = new Thread(){
public void run(){
while(true){
try {
Thread.sleep(5*1000)
log.info("每隔5秒打印一下日志")
} catch (InterruptedException e) {
e.printStackTrace()
log.error(e.getMessage())
}
}
}
}
thread.run()
} catch (Exception e) {
log.error("[X]启动失败:"+e.getMessage())
System.exit(1)
}
}
}
每个项目一个表空间,这不会出问题。主要是3个项目最后打包的东西所用到的第三方提供的 jar 类库的共享问题。如果大家用相同的 jar 就尽量用同一个版本,如果没办法做到用同一个版本就尽量把它们放到自己的 ear 里面或 WEB-INF/lib 下面,不能直接把同一个 api 的不同版本同时放到服务器的 lib 目录下。ear 本身是一个 zip 格式,它可以包括 ejb 的 jar, war 之类的,另外还可以把第三方的 spring.jar,hibernate.jar 之类的也放在里面,然后你的 ejb 源文件夹的 META-INF/MANIFEST.MF 里面的 Class-Path: spring.jar hibernate.jar 这样用相对位置来引用第三方 jar 就可以了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)