前言
在n年前java只是一种编程语言的理解但现在的java非常强大其含义也发生变化我们可以理解为海陆空总集合的部队其下属分支很多如jspservletjavabeanappletejbjmsjse(无线通讯用)javaDjavaD……
此处我们着重介绍java的web应用和开发即jspservletjavabeanappletejb等其中applet是比较特殊的它需要jre(java运行环境)的支持并且对jre版本有要求即applet是用jdk开发的那么jre也得版本的
java的web开发需要视情况而定如果只是编译jspservletjavabeanapplet等只需要安装jdk(java开发工具包)如果加上ejb就得jdk+jeejdkjee的安装程序到http://javasuncom下载本例的jdk安装在C:\jsdkjee安装在c:\jee读者可根据安装的目录自定安装后配置的环境变量如下
CLASSPATH=;C:\jsdk\lib\toolsjar;C:\jee\lib\jeejar;
JEE_HOME=c:\jee
java_HOME=C:\jsdk
Path=C:\jsdk\lib\toolsjar;C:\jsdk\lib\dtjar;C:\jsdk\bin;C:\jsdk\jre\bin;
如果Path变量有其他的值请在后面续接此处的值
在windowsXXX中开始->设置->控制面板->系统->高级->环境变量->系统变量中设置上述的值在windowX中上述的变量写在autoexecbat文件中格式是变量=值(回车)
测试jdk是否可用的方法是在c盘下新建一个Testjava文件写入以下代码
import javautilDate;
public class Test
{
//构造函数
public Test(){}
//显示当前时间的方法
public String getDate()
{
Date date=new Date();
return datetoString();
}
}
在dos状态下键入C:\>javac /Testjava编译通过后同目录下新增Testclass说明jdk成功安装测试jee在dos状态下键入C:\jee\bin>jee verbose如果启动的过程中没有错误不要关闭窗口在IE浏览器中访问HTTP://localhost:看到默认的jee主页由此可看出jee除了自带工具包外还可以充当web服务器的角色
jbuilderjbossms sql配置
开发ejb应用系统较好的开发发布的工具组合是websphere+visualAge两者都是ibm出品协同工作性非常好包括建模版本控制ejb开发web发布等一体化让程序员从底层的ejb开发中解放出来但该组合的价格大概是十万人民币不是每个客户都可以承受的所以我们推荐另一个组合jbuilder+jboss数据库选择微软的sql server(简称sql)部分介绍参考了刘晓巍(liuxiaowei@sinacom)的文章并加入作者的见解
jboss每一个版本的差别很大它不象传统的软件兼容性好此例jboss的版本是jboss_tomcat下载地址http://prdownloadssourceforgenet/jboss/jboss_tomcatzip?download
数据库sql和jboss一起协同工作有两种方式一种是odbcjdbc一种是jdbc许多web服务器自带odbcjdbc驱动无需下载在控制面板->管理工具->数据源(odbc)中设置数据源即可使用但如果要开发ejb要使用jdbc驱动很多公司提供ms sql的jdbc驱动(属第四种类型驱动即纯java驱动)作者建议大家到微软的官方站点下载http://wwwmicrosoftcom/downloads/detailsaspx?FamilyID=ddbbafbbee&DisplayLang=en下载后安装默认安装路径是C:\Program Files\Microsoft SQL Server Driver for JDBCjdbc的驱动包在lib中分别是msbasejarmssqlserverjarmsutiljar
jboss和jbuilder协同工作需要下载并安装JBossOpenTool For JBuilder 下载地址http://weisoftmyricecom/download/JBuilder_JBossOTjar将下载的JbossOpenTooljar拷贝至Jbuilder的lib\ext目录下重启动JBuilder
准备工作完成后我们开始配置工作
一在jboss中配置sql的JDBC驱动
将msbasejar msutiljar mssqlserverjar三个文件拷贝至Jboss的Server\default\lib目录下将Jboss的docs\examples\jca目录下的mssqlservicexml mssqlxaservicexml文件拷贝至Jboss的server\default\deploy目录下修改mssqlservicexml/*…*/中是说明文件千万不要拷贝到该xml文件中
<configproperty name=ConnectionURL type=javalangString>
jdbc:microsoft:sqlserver://localhost:;DatabaseName=Northwind
</configproperty>
/*sql默认端口是如果sql和jboss分装不同机器则localhost要改成数据库的ip地址数据库选择sql自带的Northwind数据库你可以改成别的数据库*/
<configproperty name=UserName type=javalangString>sa</configproperty>
/*数据库的用户名*/
<configproperty name=Password type=javalangString>csdn</configproperty>
/*与数据库用户名对应的密码*/
修改mssqlxaservicexmlServerNameDatabaseName要和上个文件的一样
<configproperty name=XADataSourceProperties type=javalangString>
ServerName=localhost;DatabaseName=Northwind;SelectMethod=cursor
</configproperty>
二运行jboss
运行jboss安装目录\bin\runbat打开IE在地址栏输入 http://localhost:出现一些错误信息大意是没有web应用程序等读者可以先在jboss安装目录\server\default\deploy中新建一个简单的web应用程序或者等待后面用jbuilder中发布一个web应用如果需要新建步骤如下
jboss安装目录\server\default\deploy中新建文件夹db_testwar在db_testwar中新建indexjsp内容如下
<%@page contentType=text/html%>
<%@ page import=javasql* javaxsqlDataSource javaxnamingInitialContext %>
<h>Test sql Database</h>
<%
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctxlookup(java:/MSSQLDS);
Connection conn = dsgetConnection();
Statement stmt = conncreateStatement();
ResultSet rs = stmtexecuteQuery(SELECT * FROM Employees); while ( rsnext() ) {
outprintln( rsgetInt(EmployeeID) + <br>);
}
connclose();
%>
在db_testwar中新建文件夹WEBINF其中有两个文件jbosswebxml和webxml
jbosswebxml内容是
<jbossweb>
</jbossweb>
webxml内容是
<?xml version=?>
<!DOCTYPE webapp PUBLIC
//Sun Microsystems Inc//DTD Web Application //EN
http://javasuncom/dtd/webapp__dtd>
<webapp></webapp>
访问http://localhost:/db_test成功后表示和数据库正常连接了
三配置JBuilder
()启动jbuilderTools>Enterprise Setup单击Database Drivers页上的Add 在弹出的对话框中单击New 在弹出的对话框中填写Name为MS SQL Server JDBC Location选择User Home单击Add按钮选择msbasejar msutiljar mssqlserverjar单击OK关闭当前对话框可以看到MS SQL Server JDBC已被加入单击OK关闭当前对话框再次单击OK配置完成
()重起JBuilder Tools>Configure Servers选中左侧的JBoss X选中右边的Enable Server填写
General页Home Directiry = F:\jboss_tomcat // <——JBoss的安装目录
Main Class = orgjbossMain
VM Parameters =msm mxm Dprogramname=runbat
Server Parameters = c default
Working Directory = F:\jboss_tomcat\bin
Custom页JBoss Installation Directory = F:\jboss_tomcat // <——JBoss的安装目录
Tomcat X JBuilder Installation Directory = F:\JBuilder\jakartatomcat //<——Tomcat的安装目录
JBoss Configuration to Use = default
单击OK
()Tools—>Configure Libraries 在弹出的对话框中单击New按钮在Name栏中填写JBoss Libs单击Add按钮加入JBoss目录下\Server\default\lib目录下的javaxservletjar和jbossjeejar文件单击OK
()Tools—>Database Pilot新打开的Database Pilot窗口是察看数据库的相当于数据库服务器的客户端选择File—>New…
Driver=commicrosoftjdbcsqlserverSQLServerDriver
URL=jdbc:microsoft:sqlserver://localhost:;DatabaseName= Northwind
单击OK在左边窗口出现我们新建的数据库连接双击输入用户名密码就可以浏览数据库Northwind中的数据表注意此处URL的写法要刚刚配置的jboss的xml文件一样
如果读者没法连上数据库可以把sql的jdbc驱动msbasejarmssqlserverjarmsutiljar拷贝到jbuilder安装目录\lib中
在jbuilder中开发ejb
一新建一个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 X单击OK
二新建一个EJB Module选择File>New在弹出的对话框中选择Enterprise页中的EJB Module图标单击OK在弹出的对话框中Name栏填写JBossDemoModule其它不变单击OK
三新建两个CMP右键单击左下角的DataSource选择Import Schema From Database在弹出的对话框Database Schema Provider中选择Choose Existing Connection在弹出的Select Database中选择我们刚建立的jdbc:microsoft:sqlserver…单击ok在Database Schema Provider中按如下信息填写其他不变
UserNamesa
Passwordcsdn
JNDI Namejava:/MSSQLDS
Extended propertiesDatabaseName=Northwind
勾选All Schemas和Views项
单击OK成功的话在DataSource下面将出现一个java:/MSSQLDS项单击其左侧的+号将其展开将会看到表名右键单击Employees表选择CMP Entity Bean 同样右键单击Orders表选择CMP Entity Bean
四建立表关联的关系右键单击右侧的代表Employees表的矩形选择Add->Relationship后单击指向代表Oderss表的矩形后将会看到一条线把两个矩形连接起来了同时Employees表多了一个orders字段单击右下角的JBossCMPJDBC页按如下填写其它不变
datasource = MSSQLDS
datasourcemapping = Hypersonic SQL
选择File->Save All保存项目选择Project->Make Project JbossDemojpx编译项目
五建立Session Bean在右边的空白处单击右键选择Create EJB-> Session Bean 将Bean Name改为GetData右键单击代表这个Session Bean的矩形选择Add->Method按如下填写
Method Name = GetOrdersByEmployeesID
Return Type = Vector
Input Parameters = Integer ID
Interface = Remote
六编写代码右键单击代表GetData的矩形选择 View Bean Source在开始处加入以下语句:
import javautil*;
import javaxnaming*;
按如下填写GetOrdersByEmployeesID
public Vector GetOrdersByEmployeesID(Integer ID)
{
Vector result = new Vector();
resultadd(ID);
try
{
Context ctx = new InitialContext();
EmployeesHome home = (EmployeesHome)ctxlookup(Employees);
Employees emp = homefindByPrimaryKey(ID);
Collection orders = empgetOrders();
Iterator it = ordersiterator();
while(ithasNext())
{
Orders order = (Orders)itnext();
resultadd(ordergetOrderID());
}
}
catch (Exception ex)
{
Systemoutprintln(ShowOrdersByEmployeesID() error : + exgetMessage());
}
return result;
}
七建立Servlet选择File>New在弹出的对话框中选择Web页中的Servlet图标单击OK在弹出的对话框中Class Name栏填写FormServlet其它不变单击Next选中doGet()项单击Next此处的Name和URL pattern是有讲究的它说明该servlet的web位置和web显示名称其它不变单击Finish
按如下填写FormServletjava的doGet()函数
public void doGet(HttpServletRequest request HttpServletResponse response) throws ServletException IOException
{
responsesetContentType(CONTENT_TYPE);
PrintWriter out = responsegetWriter();
outprintln(<h>Enter the Employees ID</h>);
outprintln(<strong>Enter Employees ID in the input fields below</strong>);
outprintln(<br><br>);
outprintln(<form action=showordersservlet method=POST>);
outprintln(Name<br>);
outprintln(<input type=text name=EmployeeID value=\\ size= maxlength=>);
outprintln(<br><br><br><br>);
outprint(<input type=submit value=Submit>);
outprintln(</form>);
}
再次选择File>New在弹出的对话框中选择Web页中的Servlet图标单击OK在弹出的对话框中Class Name栏填写ShowOrdersServlet其它不变单击Next选中doPost()项其它不变单击Next单击Next单击Add Parameter按如下填写
Name = EmployeeID
Type = String
Desc = employees ID
Variable = employeeID
Default =
单击Next单击Finish
按如下填写ShowOrdersServletjava的doPost()函数别忘了在开始处加入以下语句:
import javautil*;
import javaxnaming*;
public void doPost(HttpServletRequest request HttpServletResponse response) throws ServletException IOException
{
String employeesID = requestgetParameter(EmployeeID);
if (employeesID == null)
{
employeesID = ;
}
responsesetContentType(CONTENT_TYPE);
PrintWriter out = responsegetWriter();
Vector orders = new Vector();
try
{
Context ctx = new InitialContext();
GetDataHome home = (GetDataHome)ctxlookup(GetData);
GetData getData = homecreate();
orders = getDataGetOrdersByEmployeesID(new Integer(employeesID));
}
catch (Exception ex)
{
Systemoutprintln(GetOrdersServlet doPost() error :+exgetMessage());
}
Iterator it = ordersiterator();
outprintln(<html>);
outprintln(<head><title>ShowOrdersServlet</title></head>);
outprintln(<body>);
outprintln(<p>Orders with EmployeesID + employeesID+ </p>);
while(ithasNext())
{
outprintln(<p>OrderID = + itnext()toString()+</p>);
}
outprintln(<h>Order Count = + orderssize()+</h>);
outprintln(</body></html>);
}
八建立EAR文件右键单击左侧目录树中的的<Default WebApp>选择Properties将WebApp页的Name填写为JBossDemo将Dependencies页中的所有项设置成Exclude All单击OK选择File>New在弹出的对话框中选择Enterprise页中的EAR图标单击OK第一页不变单击Next选中JBossDemoModule单击Next单击Next单击Next选中JBossDemo单击Finish选择File->Save All保存项目选择Project->Rebuild Project JBossDemojpx编译项目
九发布整个应用程序右键单击左侧目录树中的的JBossDemoeargrp选择Deploy Options for JBossDemoear —>Deploy发布应用程序
十测试应用程序打开IE在地址栏输入 http://localhost:/JBossDemo/formservlet回车在编辑框中输入单击submit即可
在jbuilder中使用vss进行团队开发
部分参考网上CNJAVA论坛>CASE工具>VSS与Jbuilder/进行代码控制的说明书
一vss安装
如果你的电脑装有vss但版本的不是vss那你可以卸装(服务器版本)或者清理注册表记录(客户端版本)开始>运行>regeditexe清除 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe 中的所有记录vss是微软Visual Studio 中的一员你可以从中安装作者安装的是vss独立版运行vss_ss/setupexe安装成功后重启电脑
二vss服务器端设置
运行开始>程序>Microsoft Visual Studio > Microsoft Visual SourceSafe> Visual SourceSafe Admin用户名Admin密码默认为空在Visual SourceSafe Administrator中Users>Change Password修改管理员密码单击okvss默认的数据库名是VSS我们创建新的数据库Tools>Create Database…选择该数据库放置的位置例如D:\VSSDB勾选New database…单击okUsers>Open SourceSafe Database双击vssdb此时我们操作的是vssdb数据库修改管理员密码并增加该数据库的使用用户例如Users>Add User…User namecjwPassword单击ok
选择tools>Options在弹出窗口选择 Project Security 标签选择 enable project security 复选框单击ok选择tools>Rights by Project在弹出窗口设置用户的权限设置完成之后单击close
三在vss数据库中新建项目
运行开始>程序>Microsoft Visual Studio > Microsoft Visual SourceSafe> Microsoft Visual SourceSafe 选择File>Open SourceSafe Database…双击我们刚建立的数据库vss允许以任何的层次结构存储组织项目在一个数据库中可以创建多个项目选择File>Create Project…创建一个项目例如daxt
四jbuilder中设置vss
打开Jbuilder打开我们建立的JbossDemo工程选择Team>Select Project VCS选择Visual SourceSafe单击ok选择Team>Place Project into VSS在弹出窗口中填写vss安装目录/win单击next填写刚建立数据源的目录路径单击next填写admin的用户名和密码单击next选择想置入vss中的目录或文件单击nextnext填写数据源的位置(一般情况下不填也可以)单击finish等待jbuilder把项目加入vss中根据对话框的内容知道操作是否成功
五项目开发人员获得VSS上的项目工程
vss服务器安装后项目开发人员运行vss服务器中vss安装目录/NETSETUPEXE根据提示安装或者把vss服务器中vss安装目录\win\SSEXPEXE的快捷方式放到本机直接运行即可
以下部分作者没有非常详细测试过请读者见谅若有问题请发emailpeiwen_lin@net
访问服务器共享出来的VSS数据源目录和jbuilder工程把它们映射到自己的电脑上运行Jbuilder打开Demo工程选择Team>Select Project VCS选择Visual SourceSafe单击ok选择Team>Pull Project from VSS选择映射的服务器上的VSS数据源目录单击next填写自己的用户名称和密码单击next选择数据源内合适的项目工程单击next选择一个空目录作为新项目的存放地点单击finish 根据对话框的内容知道操作是否成功工程check in后选择Team>Configure Visual SourceSaft在弹出式窗口中可以重新设定vss的参数
六在jbuilder中如何使用vss
在jbuilder中打开JBossDemo工程通过VSS进行代码控制需要经常得到最新的项目代码文档选择Team>Commit Browser在弹出窗口中可以得到最新代码版本与本地版本之间的变更列表单击Commit使本地的版本得到更新(注可选择变更记录的action项选择对此变更的操作)
修改文件前要把文件check out出来在jbuilder左边工程窗口中右击需要修改的文件选择 Visual SourceSafe>Check out …文件修改完成后用同样的方法把文件check in 进去别人才能访问修改此文件
添加文件开发人员在工程内添加了文件之后需要把它加入到 VSS右击需要增加的文件选择 Visual SourceSafe>Add… 删除文件把需要删除的文件chechout 出来右击文件选择Delete …进行此操作时可能出现VSS操作停顿的现象解决方法()激活Windows的任务管理窗口把进程 ssexe 干掉()通过 VSS 的 Explorer 窗口把没有清除的文件删掉
结束语
作者刚刚涉足EJB不免学识单薄此篇文章若有误漏请读者们多多包涵写这篇文章的目的有两个()配置过程遇到很多问题所以要把正确的过程写出来避免别人象我一样浪费时间()调配服务器过程中我从网上获得很多有用的信息所以我要反馈信息与别人共享信息资源