一、安装篇
****************
软件准备:
Apache 2.0.48 --
http://apache.linuxforum.net/dist/httpd/binaries/win32/apache_2.0.48-win32-x86-no_ssl.msi
Tomcat 5.0.16 --
http://apache.linuxforum.net/dist/jakarta/tomcat-5/v5.0.18/bin/jakarta-tomcat-5.0.18.zip
jk2 --
http://apache.linuxforum.net/dist/jakarta/tomcat-connectors/jk2/binaries/win32/jakarta-tomcat-connectors-jk2.0.2-win32-apache2.0.43.zip  
(把包内的jk*.dll改名为jk2.dll)
****************
安装:
Apache在d:\apache2048 (Netword Domain : localhost / Server Name : localhost)
Tomcat在d:\tomcat并复制jk2.dll到D:\Apache2048\Apache2\modules目录下1.编辑D:\Apache2048\Apache2\conf\httpd.conf文件,加上
LoadModule jk2_module modules/mod_jk2.dll2.注释掉
# AddDefaultCharset ISO-8859-1 3.文件尾部的改成
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "D:\tomcat\webapps"
    ServerName dummy-host.example.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>4. D:\Apache2048\Apache2\conf目录加一workers2.properties文件:
[shm]
file=${serverRoot}/logs/shm.file
size=1048576
# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
# define the worker
[ajp13:localhost:8019]
channel=channel.socket:localhost:8009
# Uri mapping
[uri:/*]
worker=ajp13:localhost:8009起动apache 和 tomcat , http://localhost 该是和 http://localhost:8080 一样的了
二、jboss配置连接池(以sql server为例)
1、下载和安装
 <1>下载可以到www.jboss.org下载,我下的是jboss3.2.1。并且不是那个和tomcat整合的版本。
 <2>安装方法就是将文件解压到硬盘的某个目录下(例如:我的解到 d:\jboss-3.2.1)。
2、配置
 <1>首先必须安装jdk。jboss不像weblogic自带java标准开发包。我安装的是1.4  安装目录是C:\j2sdk1.4.0 。
 <2>设置环境变量
  <<1>>JAVA_HOME设置为JDK的安装目录(例如:我的为C:\j2sdk1.4.0)
  <<2>>classpath的设置:看看我的,大家就知道该包含哪些包了
   C:\j2sdk1.4.0\lib\tools.jar;
   D:\jboss-3.2.1\server\default\lib\javax.servlet.jar;
   D:\jboss-3.2.1\server\default\lib\jboss-j2ee.jar;
   .;
   D:\jboss-3.2.1\client\jbossall-client.jar;
   D:\jboss-3.2.1\client\jnet.jar;
   D:\jboss-3.2.1\client\log4j.jar;
3、运行
 进入jboss3.2.1的bin目录,执行run.bat就可以了。看到出现
 00:59:26,978 INFO  [Server] JBoss (MX MicroKernel) [3.2.1 (build: CVSTag=JBoss_3
 _2_1 date=200305041533)] Started in 17s:595ms 
 这样的提示信息就说明启动成功,测试方法如下
 http://localhost:8080/jmx-console 你将看到jmx agent view4、使用
 <1>html,jsp测试
  jboss的默认web目录是在jboss-3.2.1\server\default\deploy下面。下面就介绍测试jsp,servlet,ejb的方法:
  对于测试首先在deploy下建立一个test.war文件夹,然后将html,jsp文件都可以放到这里进行测试
  例如建立一test.jsp如下:
  <%@ page language="java" %>
  <%@ page contentType="text/html;charset=gb2312" %>
  <%@ page import="java.util.*" %>
  <%=new Date().toLocalString()%>
  通过http://localhost:8080/test/test.jsp调用就可得到当前日期时间。
 <2>设置sql server2000的数据源然后在jsp中操调用操作数据库
  <<1>>下载安装sql server2000的jdbc驱动(微软提供)
  <<2>>将mssqlserver,msbase,msutil三个jar文件复制到jboss-3.2.1\server\default\lib目录下面
  <<3>>将jboss-3.2.1\docs\examples\jca\mssql-ds.xml复制一份到jboss-3.2.1\server\default\deploy下面
      部分修改如下:
<?xml version="1.0" encoding="UTF-8">
      <datasources>
    <local-tx-datasource>
     <jndi-name>ds</jndi-name>
     <connection-url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind</connection-url>
     <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
     <user-name>sa</user-name>
     <password></password>
     </local-tx-datasource>
     </datasources>     上面的配置就是用ds作为数据源的名称,用不带密码的sa用户连接sql server的样板数据库northwind。你可以作适当的修改。
  <<4>>配置完成后,用如下testSql.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:/ds");
    } catch (Exception e) {
     out.println("erro when connect to java naming api");
    }
 
 
    Connection conn = ds.getConnection();
    Statement st = conn.createStatement();
    String sqlStr = "select * from categories";
    ResultSet rs = st.executeQuery(sqlStr);
    while  ( rs.next() ) {
     out.println(rs.getString("categoryName")+"<br>");
    }
    rs.close();
    st.close();
    conn.close();
   %>

解决方案 »

  1.   

    三、jboss发布EJB
    <4>session bean的测试(Hello)
      这是一个简单的stateless session bean的测试
      <<1>>Hello.java   import java.rmi.RemoteException;
       import javax.ejb.EJBObject;   public interface Hello extends javax.ejb.EJBObject {
        public String hello() throws java.rmi.RemoteException;
       }  <<2>>HelloHome.java   import java.rmi.RemoteException;   public interface HelloHome extends javax.ejb.EJBHome {
        Hello create() throws java.rmi.RemoteException,javax.ejb.CreateException;
       }  <<3>>HelloBean.java
       
       import javax.ejb.SessionBean;
       import javax.ejb.SessionContext;   public class HelloBean implements javax.ejb.SessionBean {
        private SessionContext ctx;
     
        public void ejbCreate() {
         System.out.println("ejbCreate()");
        }
     
        public void ejbRemove() {
         System.out.println("ejbRemove()");
        }
     
        public void ejbActivate() {
         System.out.println("ejbActivate()");
        }
     
        public void ejbPassivate() {
         System.out.println("ejbPassivate()");
        }
     
        public void setSessionContext(javax.ejb.SessionContext ctx) {
         his.ctx = ctx;
        }
     
        public String hello() {
         System.out.println("hello()");
         return "hello,world";
        }
       }
      <<4>>ejb-jar.xml
       <?xml version="1.0"?>
       <!DOCTYPE ejb-jar PUBLIC
        '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN'
        'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>   <ejb-jar>
        <enterprise-beans>
         <session>
          <ejb-name>Hello</ejb-name>
          <home>HelloHome</home>
          <remote>Hello</remote>
          <ejb-class>HelloBean</ejb-class>
          <session-type>Stateless</session-type>
          <transaction-type>Container</transaction-type>
         </session>
        </enterprise-beans>
       </ejb-jar>
      <<5>>jboss.xml
       <?xml version="1.0" encoding="UTF-8"?>
       <jboss>
        <enterprise-beans>
         <session>
          <ejb-name>Hello</ejb-name>
          <jndi-name>HelloEJB</jndi-name>
         </session>
        </enterprise-beans>
       </jboss>
      <<6>>  编译3个.java文件后按照以下路径存放文件(假设放到d:\sessionEjb下面)
      d:\sessionEjb\Hello.class
      d:\sessionEjb\HelloBean.class
      d:\sessionEjb\HelloHome.class
      d:\sessionEjb\META-INF\ejb-jar.xml
      d:\sessionEjb\META-INF\jboss.xml  然后打包d:\sessionEjb\jar cvf helloejb.jar *.*,打包后将helloejb.jar放到deploy目录下面,会在控制台看到如下输出  11:35:30,815 INFO  [EjbModule] Creating
      11:35:30,825 INFO  [EjbModule] Deploying Hello
      11:35:30,835 INFO  [StatelessSessionContainer] Creating
      11:35:30,835 INFO  [StatelessSessionInstancePool] Creating
      11:35:30,835 INFO  [StatelessSessionInstancePool] Created
      11:35:30,845 INFO  [StatelessSessionContainer] Created
      11:35:30,845 INFO  [EjbModule] Created
      11:35:30,845 INFO  [EjbModule] Starting
      11:35:30,845 INFO  [StatelessSessionContainer] Starting
      11:35:30,905 INFO  [StatelessSessionInstancePool] Starting
      11:35:30,905 INFO  [StatelessSessionInstancePool] Started
      11:35:30,905 INFO  [StatelessSessionContainer] Started
      11:35:30,905 INFO  [EjbModule] Started
      11:35:30,905 INFO  [EJBDeployer] Deployed: file:/D:/jboss-3.2.1/server/default/d
      eploy/helloejb.jar
      11:35:30,925 INFO  [MainDeployer] Deployed package: file:/D:/jboss-3.2.1/server/
      default/deploy/helloejb.jar  表明配置没有错误信息