JBoss目錄結構,部署應用,啟動配置
-----------------------------------------------
安裝JBoss會創建下列目錄結構:
目錄 描述
bin 啟動和關閉JBoss的腳本
client 客戶端與JBoss通信所需的Java 庫(JAR)
docs 配置文件的例子(數據庫配置等)
docs/dtd 在JBoss中使用的各種 XML文件的 DTD。
lib JBoss啟動時使用到的JAR,這些庫為所有JBoss配置所共享。(不要把你的庫放在
這里)
------------
server 各種JBoss配置。每個配置必須放在不同的子目錄。 子目錄的名字表示配置的名字。
JBoss包含 3個默認的配置:minimal,default和 all。
server/all JBoss的完全配置,啟動所有服務,包括集群和 IIOP。
server/minimal 這是啟動JBoss服務器所要求的最低配置。minimal 配置將啟動日志服務、JNDI服
務器以及 URL 部署掃描器,以找到待部署的(新)應用。對於那些不需要使用任
何其他 J2EE 技術,而只是使用自定義服務的場合而言,則這種配置最適合。它僅
僅是服務器,而不包含 Web 容器、不提供EJB 和JMS 支持。
server/default 默認配置,它含有大部分J2EE應用所需的標准服務。但是,它不含有JAXR服務、
IIOP 服務、或者其他任何群集服務。如果在JBoss命令行中沒有指定配置名稱,則
默認使用此配置。(本教程就采用此配置)
server/default/conf JBoss的配置文件。如:log4j.xml是 Log4j日志配置文件,login-config.xml是 Jboss
安全配置文件,jboss-service.xml 配置在 jboss 啟動時開啟的 Jboss 服務(像類加載
器,JNDI,部署工具等),jbossmq-state.xml 是 JbossMQ(JMS 實現)的用戶配置
文件。
server/default/deploy
JBoss的熱部署目錄。任何位於此目錄下的文件或目錄都會被自動部署。如:EJB、
WAR、EAR,甚至服務。
server/default/lib 一些JAR,JBoss啟動 default配置時會加載它們。
server/default/log 日志信息將存儲到該目錄。JBoss 使用 Jakarta Log4j 包作為其日志功能。同時,用
戶可以在應用中直接使用Log4j日志記錄功能。
server/default/data 這一目錄存儲持久化數據, 即使服務器發生重啟其中的數據也不會丟失。 許多JBoss
服務將數據存儲在這里,比如Hypersonic 數據庫實例。
server/default/tmp 供部署器臨時存儲未打包應用使用,也可以作為其他用途。
server/default/work 供 Tomcat編譯JSP 使用。
其中,log、data、tmp、work 目錄是JBoss創建的。如果用戶沒有啟動過JBoss服務器,則這些目錄不會被創建。
---------------------------------------------------------
1.9 在 JBoss部署應用
在JBoss部署應用的過程非常簡單、直接。在每一個配置中,Jboss會不斷掃描一個名為[jboss安裝目
錄]/server/config-name/deploy的特定目錄,查看是否有任何更新,此目錄一般被稱為“部署目錄” 。
你可以把下列文件拷貝到部署目錄中:
? 任何Java 庫(其中的類將被自動添加到JBoss的 classpath 中)
? EJB-JAR
? WAR (Web Appliction aRrchive)
? EAR (Enterprise Application aRchive)
? 包含JBoss MBean定義的XML文件
? 以.jar、.war或者.ear結尾的目錄,分別包含了 EJB-JAR、WAR 或者 EAR 的解壓縮內容。
要重新部署上述文件(JAR、WAR、EAR、XML等),只需用更新后的版本覆蓋即可。Jboss將通過對比時間戳
來檢測變化,卸載舊文件,部署相應的新文件。如果要重新部署目錄,只需更新其時間戳即可。從部署目錄中刪
除文件會導致相應文件從部署中卸載。
---------------------
啟動時可用-c參數指定要啟動的配置:run.bat -c config-name
===================
hxzon: 啟動JBOSS
在run.bat啟動文件開頭添加如下兩句:
set JBOSS_HOME=D:\big\jboss4.2.2.GA
set JAVA_HOME=D:\big\Java\jdk1.6.0_07
在瀏覽器輸入可看到JBOSS首頁。
-------------------
測試
5.1、html,jsp測試
首先在deploy下建立一個test.war文件夾,然后將html,jsp文件都可以放到這里進行測試
例如建立一testdate.jsp如下:
<%@ page language="java" %>
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*" %>
<%=new Date().toString()%>
通過http://localhost:8080/test/test.jsp調用就可得到當前日期時間。
5.2、在jsp中操調用操作數據庫
<%@ page language="java" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%!
javax.sql.DataSource ds;
%>
<%
try {
Context ctx = new InitialContext();
ds = (javax.sql.DataSource)ctx.lookup("java:/MySqlDS");
} catch (Exception e) {
out.println("erro when connect to java naming api");
}
Connection conn = ds.getConnection();
Statement st = conn.createStatement();
String sqlStr = "select * from cat";
ResultSet rs = st.executeQuery(sqlStr);
while ( rs.next() ) {
out.println(rs.getString("categoryName")+"<br>");
}
rs.close();
st.close();
conn.close();
%>
5.3、servlet的配置測試
5.3.1編寫並編譯如下的簡單servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("Hello World");
}
}
5.3.2在test.war文件夾下建立一個WEB-INF目錄,里面再建立一個classes目錄和web.xml文件目錄結構如下:
[test.war]
[WEB-INF]
[classes]
web.xml
將編譯成功的HelloWorld.class放置到classes目錄下,web.xml內容如下:
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>
通過調用http://localhost:8080/test/HelloWorld 就可以看到hello world的輸出