内容介绍:
本文讲述了建立一个典型的3层结构的j2ee的实现过程,主要是实现过程,没有理论说明。这完全是根据我个人的经验所写,希望能够对大家有所帮助,欢迎大家多多批评指正!
假设jbuilder7和jboss3x 安装完毕,操作系统为:windows2000 server(sp2),数据库为: sqlserver2000(sp2)。jdbc为microsoft sqlserver2000的驱动。
例子源码:http://weisoft.myrice.com/download/jbossdemo.rar,(sqlserver sa密码为csdn)
一. 环境设置
1. 下载并安装jbossopentool for jbuilder 7
http://weisoft.myrice.com/download/jbuilder_jbossot.jar
将下载的jbossopentool.jar拷贝至jbuilder7的lib\ext目录下,重起jbuilder。
1. 配置ms sql server 2000 jdbc
jboss设置:
将msbase.jar, msutil.jar, mssqlserver.jar三个文件拷贝至jboss的server\default\lib目录下。将jboss的docs\examples\jca目录下的mssql-service.xml, mssql-xa-service.xml文件拷贝至jboss的server\default\deploy目录下,并做如下修改:mssql-service.xml(红色是修改部分,分别是数据库名,用户名,密码,根据你的环境调整即可):
<config-property name="connectionurl" type="java.lang.string">
jdbc:microsoft:sqlserver://localhost:1433;databasename=northwind</config-property>
<config-property name="username" type="java.lang.string">sa</config-property>
<config-property name="password" type="java.lang.string">csdn</config-property>
mssql-xa-service.xml(红色是修改部分,分别是sqlserver服务器名,数据库名):
<config-property name="xadatasourceproperties" type="java.lang.string">
servername=localhost;databasename=northwind;selectmethod=cursor</config-property>
jbuilder配置:选择:tools->enterprise setup,单击database drivers页上的add, 在弹出的对话框中单击new,. 在弹出的对话框中填写name为ms sql server jdbc, location选择user home,单击add按钮,选择msbase.jar, msutil.jar, mssqlserver.jar,单击ok关闭当前对话框,可以看到ms sql server jdbc已被加入,单击ok关闭当前对话框,再次单击ok,配置完成。重起jbuilder 7。
2. 启动jbuilder7,选择:tools->configure servers选中左侧的jboss 3.x,选中右边的enable server,按下表信息填写:
general页:
home directiry = f:\jboss-3.0.4_tomcat-4.1.12 // <——jboss的安装目录
main class = org.jboss.main
vm parameters =-ms64m -mx64m -dprogram.name=run.bat
server parameters = -c default
working directory = f:\jboss-3.0.4_tomcat-4.1.12\bin
custom页:
jboss installation directory = f:\jboss-3.0.4_tomcat-4.1.12 // <——jboss的安装目录
tomcat 4x jbuilder installation directory = f:\jbuilder7\jakarta-tomcat-4.0.3 //<——tomcat的安装目录
jboss configuration to use = default
单击ok。
3. 选择tools—>configure libraries, 在弹出的对话框中单击new按钮,在name栏中填写jboss libs,单击add按钮,加入jboss目录下\server\default\lib目录下的javax.servlet.jar和jboss-j2ee.jar文件,单击ok。
二. 实现步骤
1. 新建一个project:
选择file->new project,在name栏填写jbossdemo,在directory栏输入保存路径,其它不变,单击finsih。
选择project->project properties,在path页的required libraries中单击add按钮,在弹出的对话框中选择我们刚才建立的jboss libs,单击ok。选择server页,选中single server for all service in project,在下拉列表中选择jboss 3.x,单击ok。
2. 新建一个ejb module:
选择file->new,在弹出的对话框中选择enterprise页中的ejb module图标,单击ok。在弹出的对话框中name栏填写jbossdemomodule,其它不变,单击ok。
3. 新建两个cmp
右键单击左下角的datasource,选择import schema from database,按如下信息在弹出的对话框中填写:
driver = com.microsoft.jdbc.sqlserver.sqlserverdriver在extended properties中添加一项
url = jdbc:microsoft:sqlserver://localhost:1433;databasename=northwind
username = sa // ßsqlserver用户名
password = “” // ßsqlserver密码
jndi name = java:/mssqlds
import java.util.*;
import javax.naming.*;
按如下填写getordersbyemployeesid:
public vector getordersbyemployeesid(integer id)
{
vector result = new vector();
result.add(id);
try
{
context ctx = new initialcontext();
employeeshome home = (employeeshome)ctx.lookup("employees");
employees emp = home.findbyprimarykey(id);
collection orders = emp.getorders();
iterator it = orders.iterator();
while(it.hasnext())
{
orders order = (orders)it.next();
result.add(order.getorderid());
}
}
catch (exception ex)
{
system.out.println("showordersbyemployeesid() error : " + ex.getmessage());
}
return result;
}
public void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception
{
response.setcontenttype(content_type);
printwriter out = response.getwriter();
out.println("<h1>enter the employees id</h1>");
out.println("<strong>enter employees id in the input fields below.</strong>");
out.println("<br><br>");
out.println("<form action=showordersservlet method=post>");
out.println("name<br>");
out.println("<input type=text name=employeeid value=\"\" size=20 maxlength=150>");
out.println("<br><br><br><br>");
out.print("<input type=submit value=submit>");
out.println("</form>");
}
name = employeeid单击next,单击finish。
type = string
desc = employee’s id
variable = employeeid
default = 1
import java.util.*;
import javax.naming.*;
public void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception
{
string employeesid = request.getparameter("employeeid");
if (employeesid == null)
{
employeesid = "1";
}
response.setcontenttype(content_type);
printwriter out = response.getwriter();
vector orders = new vector();
try
{
context ctx = new initialcontext();
showdatahome home = (showdatahome)ctx.lookup("showdata");
showdata showdata = home.create();
orders = showdata.showordersbyemployeesid(new integer(employeesid));
}
catch (exception ex)
{
system.out.println("showordersservlet dopost() error :"+ex.getmessage());
}
iterator it = orders.iterator();
out.println("<html>");
out.println("<head><title>showordersservlet</title></head>");
out.println("<body>");
out.println("<p>orders with employeesid " + employeesid+ "</p>");
while(it.hasnext())
{
out.println("<p>orderid = " + it.next().tostring()+"</p>");
}
out.println("<h1>order count = " + orders.size()+"</h1>");
out.println("</body></html>");
}
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器