first commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,167 @@
|
||||
JBossJBoss
|
||||
|
||||
JBoss
|
||||
|
||||
JBoss是一套开源的企业级Java中间件软件,用于实现基于SOA架构的web应用和服务。
|
||||
Jboss包含一组可独立运行的软件。
|
||||
2006年4月10日,Redhat宣布斥资3.5亿美元收购JBoss
|
||||
JBoss是一个免费的开源应用服务器,全面支持J2EE,包括JSP,Servlets,EJB。为了让J2EE开发人员快速熟悉JBoss,本文将带您开始JBoss之旅,包括下载,安装,部署应用程序和配置数据源。
|
||||
|
||||
工具准备
|
||||
为了运行JBoss,你需要准备以下工具:
|
||||
u JDK 1.3.1或更高。
|
||||
为了在JBoss上开发应用程序,你可能还需要以下开发工具:
|
||||
u Ant 1.5,一个Java Build Tool。
|
||||
u XDoclet 1.1.2,一个用于生成代码的Javadoc插件。
|
||||
u JBoss Project Template
|
||||
|
||||
下载
|
||||
可以从JBoss.org/">www.JBoss.org获得JBoss,JBoss现在有两种供你选择:标准版,包括用于Web页和Servlets的Jetty,和另一个用Tomcat替换Jetty的版本。
|
||||
在写作本文时,JBoss 3.2.1是最新的稳定版本。
|
||||
|
||||
安装
|
||||
解压压缩包到一个指定的目录,例如JBoss-3.2.1,解压完毕后,应该生成如下目录:
|
||||
u bin:命令和脚本
|
||||
u client:客户端jars
|
||||
u docs:JBoss的文档
|
||||
u lib:服务器端jars
|
||||
u server:服务器配置文件
|
||||
第二步,建立以下环境变量:
|
||||
u JBoss_HOME:设置为JBoss的安装目录。
|
||||
u JAVA_HOME:设置为JDK的安装目录。
|
||||
|
||||
服务器配置
|
||||
JBoss提供了3种服务器配置:
|
||||
u Minimal:最小配置,仅仅包括日志,JNDI服务和URL部署扫描器,你可能会在一个不需要J2EE的应用中使用这种配置,或者以该配置为基础自定义配置。
|
||||
u Default:缺省配置,包括除了RMI/IIOP和集群的所有J2EE服务。
|
||||
u All:这种配置包括所有的JBoss服务。
|
||||
|
||||
启动
|
||||
为了启动JBoss,在Windows下:
|
||||
u 打开一个命令行窗口;
|
||||
u 键入:cd %JBoss_HOME%in;
|
||||
u 键入:run [-c default|minimal|all]。
|
||||
在UNIX下:
|
||||
u 打开一个Shell;
|
||||
u 键入:cd $JBoss_HOME/bin;
|
||||
u 键入:./run [-c default|minimal|all]。
|
||||
如果JBoss启动成功,你应该可以看到以下输出:
|
||||
21:11:16,637 INFO [Server] JBoss (MX MicroKernel) [3.2.1 (build: CVSTag=JBoss_3 _2_1 date=200305041533)] Started in 26s:919ms
|
||||
一旦服务器启动成功,你就可以通过在浏览器中打开http://localhost:8080/jmx-console/来验证所有的J2EE服务是否都启动了。这是JBoss的管理台,它将显示当前配置下JBoss正在运行的所有服务以及每个服务的详细内容。
|
||||
JBoss也可以作为NT服务或者Unix服务来运行,可以参考“JBoss 3.0 Quick Start Guide”。
|
||||
|
||||
关闭
|
||||
如果在Windows的命令行窗口或者当前的Unix Shell下运行JBoss,只需要简单的按下Ctrl+C即可关闭JBoss。
|
||||
如果在Windows下不能看见命令行窗口:
|
||||
u 打开一个新的命令行窗口;
|
||||
u 键入:cd %JBoss_HOME%in;
|
||||
u 键入:shutdown –S或者shutdown --server=url。
|
||||
如果在Unix Shell的后台运行:
|
||||
u 打开一个Shell;
|
||||
u 键入:cd $JBoss_HOME/bin;
|
||||
u 键入:./shutdown –S或./shutdown --server=url。
|
||||
|
||||
管理
|
||||
JBoss通过一个基于Web的控制台管理,你只需在浏览器中键入:http://localhost:8080/jmx-console/即可。查看或更改某一服务的配置,只需简单的点击链接。
|
||||
通过控制台,你还可以使用一些服务的公开的方法,例如,关闭服务器:
|
||||
u 打开控制台;
|
||||
u 卷动到“JBoss.system”选项;
|
||||
u 点击链接“type=server”;
|
||||
u 卷动到“void shutdown()”选项;
|
||||
u 点击“Invoke”按钮。
|
||||
|
||||
部署应用程序
|
||||
在JBoss中部署应用程序是再简单不过的了。简单的复制你的应用程序打包文件:.jar,.war或者.ear到服务器缺省的部署目录下,如果JBoss正在运行,将检测到文件,自动解压,然后装载应用程序。
|
||||
以下是将一个应用部署到一个缺省的服务器配置的例子,在Windows下:
|
||||
u 复制rotmachine.ear到%JBoss_HOME%serverdefaultdeploy
|
||||
在Unix下:
|
||||
u 复制rotmachine.ear到$JBoss_HOME/server/default/deploy
|
||||
|
||||
在部署过程中,JBoss日志将在控制台窗口输出信息并写入日志,日志文件位于服务器的配置目录。如果部署成功,你应该可以看到以下信息:
|
||||
22:21:44,730 INFO [MainDeployer] Deployed package: file:/C:/JBoss-3.2.1/server/default/deploy/rotmachine.ear
|
||||
此外,如果你打开JBoss的管理台,可以在“JBoss.j2ee”类别下列出你的应用。
|
||||
|
||||
取消已部署的应用
|
||||
取消已部署的应用程序比部署应用程序更简单。只要简单的从部署目录中删除相应的应用程序文件,JBoss就会检测到文件已被删除,然后取消已部署的应用。
|
||||
取消部署一个应用时,JBoss日志将在控制台窗口显示信息,并记录到服务器日志。如果取消部署成功,你应该可以看到以下信息:
|
||||
22:59:41,500 INFO [MainDeployer] Undeployed file:/C:/JBoss-3.2.1/server/default/deploy/rotmachine.ear
|
||||
|
||||
数据源
|
||||
如果你的应用程序将连接到数据库,你可能需要为数据库配置一个数据源。以下是如何配置一个简单的数据源:
|
||||
如果你使用的数据库JDBC驱动没有在服务器的lib目录中,复制驱动程序到此目录,然后重新启动JBoss。
|
||||
为你的数据库创建一个数据源描述文件,例如,oracle-ds.xml:
|
||||
部署数据源描述文件,方法和部署应用程序相同。
|
||||
以下是oracle数据源的一个描述文件示例:
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<datasources>
|
||||
<local-tx-datasource>
|
||||
<jndi-name>OracleDS</jndi-name>
|
||||
<connection-url>jdbc:oracle:thin:@serverip:1521:DB</connection-url>
|
||||
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
|
||||
<user-name>dev</user-name>
|
||||
<password>secret</password>
|
||||
</local-tx-datasource>
|
||||
</datasources>
|
||||
其它的数据源描述文件的示例可以在JBoss_HOME/docs/examples/jca中找到。
|
||||
|
||||
EJB
|
||||
为JBoss创建EJB和其他任何J2EE应用服务器一样,但需要一个额外的JBoss使用的EJB部署描述文件JBoss.xml,以下是一个示例:
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE JBoss PUBLIC "-//JBoss//DTD JBoss//EN"
|
||||
"http://www.JBoss.org/j2ee/dtd/JBoss.dtd">
|
||||
<JBoss>
|
||||
<enterprise-beans>
|
||||
<session>
|
||||
<ejb-name>Processor</ejb-name>
|
||||
<jndi-name>ejb/Processor</jndi-name>
|
||||
</session>
|
||||
<entity>
|
||||
<ejb-name>Data</ejb-name>
|
||||
<jndi-name>ejb/Data</jndi-name>
|
||||
</entity>
|
||||
</enterprise-beans>
|
||||
</JBoss>
|
||||
请注意,和其它J2EE服务器不同,JBoss不需要生成存根文件(stubs and skeletons),它能动态调用EJB。
|
||||
|
||||
客户端
|
||||
正如上文所说,JBoss不需要客户端存根(stubs),你只需向客户端提供以下接口:
|
||||
u EJB Home接口和Remote接口;
|
||||
u 任何在客户端和EJB间传递的对象;
|
||||
u 一份JBoss_HOME/client/JBossall-client.jar的文件拷贝。
|
||||
以下是连接已部署在JBoss中的EJB的示例:
|
||||
// 创建环境:
|
||||
Hashtable env = new Hashtable();
|
||||
env.put("java.naming.factory.initial",
|
||||
"org.jnp.interfaces.NamingContextFactory");
|
||||
env.put("java.naming.factory.url.pkgs",
|
||||
"org.JBoss.naming:org.jnp.interfaces");
|
||||
env.put("java.naming.provider.url", "localhost");
|
||||
// 创建名字上下文:
|
||||
InitialContext context = new InitialContext(env);
|
||||
// 查找Home接口:
|
||||
CipherHome home = (CipherHome)context.lookup("ejb/org/rotmachine/Cipher");
|
||||
// 获得Remote接口:
|
||||
Cipher cipher = home.create();
|
||||
一个示例应用
|
||||
为了帮助你更好的了解JBoss,本文包含了一个名为RotMachine的应用程序,请参见资源链接。
|
||||
RotMachine是一个简单的J2EE应用,包括一个EJB(Stateless Session Bean),一个Web客户端和一个命令行(Command-line)客户端。它使用JBoss的项目模板(Project Template),你可能需要上文提到的一些额外的开发工具。
|
||||
如果要编译RotMachine的源文件,解压文件到一个指定的目录中,在Windows下:
|
||||
u 打开一个命令提示符窗口;
|
||||
u 键入:cd (解压目录);
|
||||
u 键入:ant deploy-server。
|
||||
在Unix下:
|
||||
u 打开一个Shell;
|
||||
u 键入:cd (解压目录);
|
||||
u 键入:ant deploy-server。
|
||||
要在命令行客户端测试RotMachine,在Windows下:
|
||||
u 打开一个命令提示符窗口;
|
||||
u 键入:cd buildin;
|
||||
u 键入:run-client。
|
||||
在Unix下:
|
||||
u 打开一个Shell;
|
||||
u 键入:cd build/bin;
|
||||
u 键入:./run-client.sh。
|
||||
要在Web客户端测试RotMachine,请打开浏览器,输入:“http://localhost:8080/rotmachine/index.jsp”,在表单中输入一些文本,点击“Go!”按钮。
|
||||
|
||||
|
||||
|
||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,39 @@
|
||||
载好的JDK是一个可执行安装程序,双击安装。将安装路径改为:C:\jdk1.6.0(当然其他路径也可以)。
|
||||
|
||||
JDK安装完成之后我们进行JDK环境变量设置:
|
||||
|
||||
我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:
|
||||
|
||||
(1)设置好path变量,使得我们能够在系统中的任何地方运行java应用程序,比如javac、java、javah等等,这就要找到我们安装JDK的目录,比如我们的JDK安装在C:\jdk1.6.0目录下,那么在C:\jdk1.6.0\bin目录下就是我们常用的java应用程序,我们就需要把C:\jdk1.6.0\bin这个目录加到path环境变量里面。
|
||||
|
||||
在系统变量里找到path变量,选择->编辑;(里面已经有很多的变量值,是在变量值的最前面加上C:\jdk1.6.0\bin;)
|
||||
变量名:path
|
||||
变量值:C:\jdk1.6.0\bin;
|
||||
|
||||
(2)classpath环境变量,是当我们在开发java程序时需要引用别人写好的类时,要让java解释器知道到哪里去找这个类。通常,sun为我们提供了一些额外的丰富的类包,一个是dt.jar,一个是tools.jar,这两个jar包都位于C:\jdk1.6.0\lib目录下,所以通常我们都会把这两个jar包加到我们的classpath环境变量中set classpath=.;C:\jdk1.6.0\lib\tools.jar;C:\jdk1.6.0\lib\dt.jar。
|
||||
|
||||
在系统环境变量那一栏中点->新建classpath
|
||||
变量名:classpath
|
||||
变量值:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;(注意,CLASSPATH最前面是有个“.”的,表示当前目录,这样当我们运行java AClass的时候,系统就会先在当前目录寻找AClass文件了。);
|
||||
|
||||
(3)设置JAVA_HOME:
|
||||
|
||||
一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候,只需输入%JAVA_HOME%即可,避免每次引用都输入很长的路径串;
|
||||
|
||||
二则是归一原则,当JDK路径改变的时候,仅需更改JAVA_HOME的变量值即可,否则,就要更改任何用绝对路径引用JDK目录的文档,要是万一没有改全,某个程序找不到JDK,后果是可想而知的——系统崩溃!
|
||||
|
||||
三则是第三方软件会引用约定好的JAVA_HOME变量,不然,你不能正常使用该软件。
|
||||
|
||||
在系统环境变量那一栏中点->新建JAVA_HOME (JAVA_HOME指向的是JDK的安装路径)
|
||||
变量名:JAVA_HOME
|
||||
变量值:C:\jdk1.6.0
|
||||
|
||||
配置完成下面写一个简单的java程式来测试J2SDK是否已安装成功:
|
||||
|
||||
public class HelloWorld{ public static void main(String[] args){ ystem.out.println("Hello world!"); } } 将程式保存为文档名为HelloWorld.java的文档。
|
||||
|
||||
打开命令提示符窗口,进入到HelloWorld.java所在目录,键入下面的命令
|
||||
|
||||
javac HelloWorld.java java HelloWorld 此时若打印出来HelloWorld则安装成功,若没有打印出这句话,仔细检查以上配置是否正确。
|
||||
|
||||
JDK环境变量设置成功后你就可以着手学习java了。
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user