??xml version="1.0" encoding="utf-8" standalone="yes"?>97久久香蕉国产线看观看,欧美一区二区视频,亚洲男子天堂网http://www.aygfsteel.com/topquan/category/23907.html分n价?---成就你我----我的博客----你的?/description>zh-cnSat, 07 Jul 2007 07:44:21 GMTSat, 07 Jul 2007 07:44:21 GMT60JBOSS4.0 JDBC数据源配|大?/title><link>http://www.aygfsteel.com/topquan/articles/82295.html</link><dc:creator>topquan</dc:creator><author>topquan</author><pubDate>Mon, 20 Nov 2006 07:48:00 GMT</pubDate><guid>http://www.aygfsteel.com/topquan/articles/82295.html</guid><wfw:comment>http://www.aygfsteel.com/topquan/comments/82295.html</wfw:comment><comments>http://www.aygfsteel.com/topquan/articles/82295.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/topquan/comments/commentRss/82295.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/topquan/services/trackbacks/82295.html</trackback:ping><description><![CDATA[<p><font face=宋体>q篇文章介绍了在JBoss4上用各U主?/font> <a target=_blank><font face=宋体>数据?/font> </a><font face=宋体>的配|方法,译出来的目的是Z方便大家使用JBoss4时作Z个参考。希望对q大爱好</font> <a target=_blank><font face=宋体>Java</font> </a><font face=宋体>、爱好JBoss的朋友有所帮助?<br><br>· 前言 <br><br>Jboss 4.0的开发h员版本是一个开源的</font> <a target=_blank><font face=宋体>应用服务?/font> </a><font face=宋体>Q他把HypersonicDB作ؓ他的~省数据库。然而,开发h员也许还要用除了HypersonicDB以外其他U类的数据库Q在q篇文章中我们将看到如何在Jboss上配|用其他的数据库?<br><br>· ?<br><br>Jboss4.0使用了JDBC配置文g来配|数据库q接Q它?/font> <a target=_blank><font face=宋体>EJB</font> </a><font face=宋体>和其?/font> <a target=_blank><font face=宋体>J2EE</font> </a><font face=宋体>应用提供了数据源(data source)q行讉K。如果你要用HypersonicDB以外的数据库你就要修改这个配|文件。这文章将着重讲解下面的几个部分Q?<br><br>1) Jboss的EJB部v描述W?<br>2) Oralce数据库的配置 <br>3) </font><a target=_blank><font face=宋体>MySQL</font> </a><font face=宋体>数据库的配置 <br>4) Sysbase数据库的配置 <br>5) </font><a target=_blank><font face=宋体>DB2</font> </a><font face=宋体>数据库的配置 <br>6) Infomix数据库的配置 <br><br>· Jboss的EJB部v描述W?<br><br>standardjaws.</font> <a target=_blank><font face=宋体>XML</font> </a><font face=宋体>Q位于X:\jboss4\server\default\confQ是一个映CMP 实体EJB的标准部|描q文件。它用于配置CMP实体EJBQ你也可以用jaws.xml代替。你可以把这个文件copy到ejb .jar文g中的META-INF目录下。这个文件用于描qC面的信息Q?<br><br>1) 描述一个数据源和映类型?<br>2) 描述EJB映射的表 <br>3) 描述EJB的finderҎ <br>4) 描述cd映射 <br><br>q里的数据源描述的是一个JNDI名称Q可以通过q个JNDI来获得一个数据源q接池。Jboss4~省的数据源使用的是HypersonicDB。如果用其他的数据源你需要修改jaws.xml文g?<br><br>standardjbosscmp-jdbc.xmlQ位于X:\jboss4\server\default\confQ是配置Jboss CMP容器的标准部|描q文Ӟ你也可以使用一个自定义的配|文?-jbosscmp-jdbc.xml来代替它。这个文件也攑֜EJB.jar文g的META-INF目录中。缺省用的q是HypersonicDB作ؓ数据库,q里也需要修攏V?<br><br>· </font><a target=_blank><font face=宋体>Oracle</font> </a><font face=宋体>数据库的配置 <br><br>Oracle以它的运行稳定和可靠成ؓ了一个非常受Ƣ迎的企业数据库。要在Jboss 上配|用Oracle的话我们要做的第一件事是把Oracle的JDBC</font> <a target=_blank><font face=宋体>驱动</font> </a><font face=宋体>E序复制到ClassPath下。我们把q个JDBC驱动E序复制到server/default/lib目录下。ؓ了用Oracle的事务处理数据源我们q要?docs/examples/jca/oracle-xa-ds.xml复制?server/default/deploy目录下。如果用的事非事务处理的数据源Q就?docs/examples/jca/oracle-ds.xml文g复制?server/default/deploy目录下?<br><br>下一步,我们需要修改oracle-de.xml配置文g。其中的<driver-class/>标签?lt;connection-url/>标签的设|如下: <br><br>Oracle OCI Type 2 Driver <br>Class: oracle.jdbc.driver.OracleDriver <br>URL: jdbc:oracle:oci8:@<database> <br>Oracle OCI Thin Type 4 Driver <br>Class: oracle.jdbc.driver.OracleDriver <br>URL: jdbc:oracle:thin:@<host>:<port>:<database> <br>Oracle OCI XA Type 2 Driver <br>Class: oracle.jdbc.xa.client.OracleXADataSource <br>URL: jdbc:oracle:thin:@<host>:<port>:<database> <br>Oracle OCI Type 2 Driver <br>Class: oracle.jdbc.driver.OracleDriver <br>URL: jdbc:oracle:oci8:@<database> <br><br>在Connection URL?lt;host>是安装Oracle的计机L名,<port>是oracle数据库的端口Q?lt;database>是数据库名称。下一步,我们修改standardjaws.xml 或jaws.xml配置文gQƈ?lt;datasource> ?<type-mapping>元素q只Z面这P <br><br><jaws> <br><datasource>java:/OracleDS</datasource> <br><type-mapping>Oracle8</type-mapping> <br></jaws> <br><br>下一步,再修改standardjbosscmp-jdbc.xml ?jbosscmp-jdbc.xml配置文gQ设|?lt;datasource> ?<datasource-mapping>元素使用Oracle?<br><br><jbosscmp-jdbc> <br><defaults> <br><datasource>java:/OracleDS</datasource> <br><datasource-mapping>Oracle8</datasource-mapping> <br></defaults> <br></jbosscmp-jdbc> <br><br>最后我们需要修改login-config.xml文g来用OracleQ下面是login-config.xml文g?lt;application-policy>元素Q?<br><br><application-policy name = "OracleDbRealm"> <br><authentication> <br><login-module code = <br>"org.jboss.resource.security.ConfiguredIdentityLoginModule" <br><br>flag = "required"> <br><module-option name = "principal">sa</module-option> <br><module-option name = "userName">sa</module-option> <br><module-option name = "password"></module-option> <br><module-option name ="managedConnectionFactoryName"> <br>jboss.jca:service=LocalTxCM,name=OracleDS <br></module-option> <br></login-module> <br><br></authentication> <br></application-policy> <br>修改了oracle-ds.xml, standardjaws.xml, standardjbosscmp-jdbc.xml,?<br>login-config.xml 文g之后可以再Jboss4中用Oracle了?<br><br>· MySQL数据库配|?<br><br>MySQL是一个开放源代码的数据库Q有很多开源项目和型的社团都在用它。要在Jboss4中用MySQL的话首先要把MySQL的JDBC驱动攑ֈCLASSPATH中。同P把它复制?server/default/lib目录下,再把/docs/examples/jca/mysql-ds.xml复制?server/default/deploy目录下。修改mysql-ds.xml文gQ设|?lt;driver-class/>?com.mysql.jdbc.Driver再把<connection-url/>讄?<br><br>jdbc:mysql://<mysqlhost>/<database>Q其?lt;mysqlhost>是数据库L?lt;database>是数据库名?<br><br>然后需要设|standardjaws.xml ?jaws.xml文g?lt;datasource>?lt;type-mapping>元素Q?<br><br><jaws> <br><datasource>java:/MySqlDS</datasource> <br><type-mapping>mySql</type-mapping> <br></jaws> <br><br>同样也需要把standardjbosscmp-jdbc.xml ?jbosscmp-jdbc.xml文g?lt;datasource> ?<datasource-mapping>元素讄Z面这P <br><br><jbosscmp-jdbc> <br><defaults> <br><datasource>java:/MySqlDS</datasource> <br><datasource-mapping>mySql</datasource-mapping> <br></defaults> <br></jbosscmp-jdbc> <br><br>最后再修改login-config.xml文g来用MySQLQ?<br><br><application-policy name = "MySqlDbRealm"> <br><authentication> <br><login-module code = <br>"org.jboss.resource.security.ConfiguredIdentityLoginModule" <br>flag = "required"> <br><module-option name ="principal">sa</module-option> <br><module-option name ="userName">sa</module-option> <br><module-option name ="password"></module-option> <br><module-option name ="managedConnectionFactoryName"> <br>jboss.jca:service=LocalTxCM,name=MySqlDS <br></module-option> <br></login-module> <br></authentication> <br></application-policy> <br><br>修改了mysql-ds.xml, standardjaws.xml, standardjbosscmp-jdbc.xml,和login-config.xml 文g可以在Jboss上用MySQL了?/font> </p> <p><font face=宋体>· SysBase<a target=_blank>数据?/a>配置 <br><br><a target=_blank>Sybase</a> Adaptive Server Ent<a target=_blank>ERP</a>rises(ASE)是Sysbase公司的数据库<a target=_blank>服务?/a>。ASE可以在Unix?a target=_blank>Linux</a>q_上用。同h们要把它的数据库<a target=_blank>驱动</a>攑ֈCLASSPATH中,把它复制?server/default/lib目录下,然后?docs/examples/jca/sybase-ds.<a target=_blank>XML</a> 复制?server/default/deploy目录下。修改sybase-ds.xml文g?lt;driver-class/>讄?com.sybase.jdbc2.jdbc.SybDriver再把<connection-url/>讄?jdbc:sybase:Tds:<host>:<port>/<database>Q其?lt;host><port><database>分别Z机名、端口名和数据库名。同样需要修改standardjaws.xml ?jaws.xml 文g?<datasource> ?lt;type-mapping> 元素Q?<br><br><jaws> <br><datasource><a target=_blank>Java</a>:/SybaseDS</datasource> <br><type-mapping>Sybase</type-mapping> <br></jaws> <br><br>再修改standardjbosscmp-jdbc.xml ?jbosscmp-jdbc.xml 文g?<datasource> ?<datasource-mapping>元素Q?<br><br><jbosscmp-jdbc> <br><defaults> <br><datasource>java:/SybaseDS</datasource> <br><datasource-mapping>Sybase</datasource-mapping> <br></defaults> <br></jbosscmp-jdbc> <br><br>最后修改login-config.xml 文g来用Sysbase数据?讄 <application-policy/> 元素Q?<br><br><application-policy name = "SybaseDbRealm"> <br><authentication> <br><login-module code = <br>"org.jboss.resource.security.ConfiguredIdentityLoginModule" <br>flag = "required"> <br><module-option name ="principal">sa</module-option> <br><module-option name = "userName">sa</module-option> <br><module-option name = "password"></module-option> <br><module-option name = "managedConnectionFactoryName"> <br>jboss.jca:service=LocalTxCM,name=SybaseDS <br></module-option> <br></login-module> <br></authentication> <br></application-policy> <br><br>修改了sybase-ds.xml, standardjaws.xml, standardjbosscmp-jdbc.xml, ?<br><br>login-config.xml文g后就可以在JBOSS中用Sysbase了?<br><br>· <a target=_blank>DB2</a>数据库配|?<br><br>IBM的DB2是一个完善、用方便的数据库服务器Q它可以在LinuxQUNIX?a class=wordstyle _blank?="">windows</a>/" target="_blank"><a class=wordstyle target=_blank>Windows</a>q_上用。在JBOSS4上用DB2只要把db2java.zip复制?server/default/lib目录下。然后复?docs/examples/jca/db2-ds.xml?server/default/deploy目录下,然后修改<driver-class/> 元素?COM.ibm.db2.jdbc.app.DB2Driver Q?<connection-url/> 元素?jdbc:db2:其中?lt;database>元素代表数据库服务名?<br><br><jaws> <br><datasource>java:/DB2DS</datasource> <br><type-mapping>DB2</type-mapping> <br></jaws> <br><br>下面是相应的 standardjbosscmp-jdbc.xml (?jbosscmp-jdbc.xml)文g: <br><br><jbosscmp-jdbc> <br><defaults> <br><datasource>java:/DB2DS</datasource> <br><datasource-mapping>DB2</datasource-mapping> <br></defaults> <br></jbosscmp-jdbc> <br><br>最后在login-config.xml文g中加上下面的内容Q?<br><br><application-policy name = "DB2DbRealm"> <br><authentication> <br><login-module code = <br>"org.jboss.resource.security.ConfiguredIdentityLoginModule" <br>flag = "required"> <br><module-option name = <br>"principal">sa</module-option> <br><module-option name = <br>"userName">sa</module-option> <br><module-option name = <br>"password"></module-option> <br><br><module-option name ="managedConnectionFactoryName"> <br>jboss.jca:service=LocalTxCM,name=DB2DS <br></module-option> <br></login-module> <br></authentication> <br></application-policy> <br><br>完成上面的配|就可以在Jboss上用DB2?<br><br>· Informix 数据库配|?br><br>IBM的Infoxmix数据库服务器用于作ؓ<a target=_blank>数据仓库</a>、分析和报告。在Jboss4上用Informix数据库,首先要把它相应的数据库JDBC驱动复制?server/default/lib目录下,然后Q把/docs/examples/jca/informix-ds.xml 复制?/server/default/deploy目录下,如果你用的是事务的(XA)JDBC复刉?docs/examples/jca/informix-xa-ds.xml文g?<br><br>下一步要作的是修改q个informix-ds.xml文gQ把<driver-class/>元素讄为:com.informix.jdbc.IfxDriver?lt;connection-url/>元素讄?<br><br>jdbc:informix-sqli://<host>:<port>:informixserver=<ifx_server>Q?<br><br>其中Q?lt;host>,<port>,<ifx_server>分别代表数据库主机名、数据库端口和数据库服务名。然后修改standardjaws.xml ?jaws.xml文g?lt;datasource> ?<type-mapping>元素Q?<br><br><post> <br><jaws> <br><datasource>java:/InformixDS</datasource> <br><type-mapping>InformixDB</type-mapping> <br></jaws> <br><br>把standardjbosscmp-jdbc.xml ?jbosscmp-jdbc.xml文g中的<datasource> ?<datasource-mapping>元素讄Z面这P <br><br><jbosscmp-jdbc> <br><defaults> <br><datasource>java:/InformixDS</datasource> <br><datasource-mapping>InformixDB</datasource-mapping> <br></defaults> <br></jbosscmp-jdbc> <br><br>最后在login-config.xml文g中加?lt;application-policy/>元素Q?<br><br><application-policy name = "InformixDbRealm"> <br><authentication> <br><login-module code = <br>"org.jboss.resource.security.ConfiguredIdentityLoginModule" <br>flag = "required"> <br><module-option name = "principal">sa</module-option> <br><module-option name = "userName">sa</module-option> <br><module-option name = "password"></module-option> <br><module-option name ="managedConnectionFactoryName"> <br>jboss.jca:service=LocalTxCM,name=InformixDS <br></module-option> <br></login-module> <br></authentication> <br></application-policy> <br><br>q样Q你可以在Jboss4中用Informix数据库了?<br><br>· l论<br><br>Jboss4默认情况下用的是Hypersonic数据库,但如你所见我们只要简单的修改几个配置文g可以用市面上行的其他数据库?/font> </p> <img src ="http://www.aygfsteel.com/topquan/aggbug/82295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/topquan/" target="_blank">topquan</a> 2006-11-20 15:48 <a href="http://www.aygfsteel.com/topquan/articles/82295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBOSS热nQWindows环境下的JBOSS开?/title><link>http://www.aygfsteel.com/topquan/articles/82260.html</link><dc:creator>topquan</dc:creator><author>topquan</author><pubDate>Mon, 20 Nov 2006 06:51:00 GMT</pubDate><guid>http://www.aygfsteel.com/topquan/articles/82260.html</guid><wfw:comment>http://www.aygfsteel.com/topquan/comments/82260.html</wfw:comment><comments>http://www.aygfsteel.com/topquan/articles/82260.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/topquan/comments/commentRss/82260.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/topquan/services/trackbacks/82260.html</trackback:ping><description><![CDATA[<div class="wmqeeuq" id=msgcns!ab2aa80c6592e82!390> <div>最q要做一个在jboss下的目Qjboss版本为jboss-4.0.5.GA?/div> <div>因ؓ以前没有使用qjboss,Z更好的了解它Q就从网上找了一个小例子Q很l典的HelloWorld.</div> <div> </div> <div><strong>一、安装所需软g</strong> <br>1?安装 SDK ?D:\Program Files\Java\jdk1.5.0_07;Ҏ为:双击执行下蝲?jdk文gQ选择安装目录?D:\Program Files\Java\jdk1.5.0_07Q其它默认即可?</div> <div>2?安装 JBOSS Q方法ؓQ将下蝲?jboss-4.0.5.GA.zip文g解压CQ意一个目录,解压后会在此目录中生一?jboss-4.0.5.GA文g夹,在此文g夹下有一pd的文件和文g夏V然后在 C 盘根目录下徏一?JBOSS 目录Qƈ刚才解压后 jboss-4.0.5.GA文g夹下的一pd文g和文件夹全都拯?C Q?\JBOSS 目录下。即?JBOSS 安装C C:\JBOSS 目录中?</div> <div> </div> <div><strong>二、配|运行环境及试E序目录</strong> <br>一、设|环境变?</div> <div>1?讄 JAVA_HOME pȝ变量Q在 windows 下方法ؓQ在桌面上右键点?#8220;我的电脑”Q选择属性,然后在弹出的面上点“高” -> “环境变量”Q然后在弹出的页面中“pȝ变量”下点?#8220;新徏”Q然后在弹出的窗口中“变量?(N) 输入“ JAVA_HOME ”Q在“变量?(V) ”一栏中输入“D:\Program Files\Java\jdk1.5.0_07”?</div> <div>2?以同LҎ讄Q?JBOSS_HOME gؓQ?C:\JBOSS </div> <div>3?以同LҎ在上面地方将 Path 的值后q加Q以下内容:“ D:\Program Files\Java\jdk1.5.0_07;C:\JBOSS\bin ” </div> <div>二、创建程序目?</div> <div>1??C:\JBOSS 下新Z?myproject 目录Q用于存放自q所有项目?</div> <div>2??myproject 目录下新Z个目录:一个是 jsp 目录Q其下用于存放所有的 jsp 文g?servlet 文g及其它的 html Q?image 文g{;一个是 ejb 目录Q用于存放所有即发布的 EJB cLӞ一个是 src 目录Q用于存放所有的 java 源文件?</div> <div>3??jsp 目录下新Z个目录,q命名ؓQ?hello.war Q用来发?WEB E序Q然后再在此目录下新Zpd文g夹:卛_ hello.war 下新?WEB-INF Q大写)文g夹,再在 WEB-INF 下新?classes 文g夹,再在 classes 文g夹下新徏一?hello 文g夏V?</div> <div>4??ejb 目录下新Z?client 目录和一?hello.jar 目录Q分别用于存?EJB 客户端和要发布的服务器端cR然后再?client 目录下新Z?hello 目录Q再在此目录下新Z?ejb 目录。然后在 hello.jar 目录下新Z?hello 目录和一?META-INF( 大写 ) 目录Qƈ?hello 目录中新Z?ejb 目录?</div> <div> </div> <div> </div> <div><strong>三、编写测试程序及相关脚本</strong> <br><font color=#800080>一?试 JBOSS 安装成功与否</font> </div> <div>Ҏ如下Q进?C Q?\JBOSS 目录中,执行 run.bat –c all 启动h全部功能?JBOSS 配置服务器。屏q经q一会滚动后不再滚动。这时启?IE 输入Q?<a href="http://localhost:8080/jmx-console/index.jsp"><font color=#b32302>http://localhost:8080/jmx-console/index.jsp</font></a> 卛_看到 IE 中出Cpd列表Q即表明 JBOSS 启动成功。此时可在启?JBOSS ?DOS H口上按 Ctrl+C 关闭 JBOSS 服务器?</div> <div><font color=#800080>二?q入 C:\JBOSS\myproject\jsp\hello.war 目录中,用记事本新徏一?index.jsp 文gQ内容如?/font> </div> <div>用于试 jsp E序 </div> <div><<a href="mailto:%@page"><font color=#b32302>%@page</font></a> contentType="text/html; charset=gb2312"%> </div> <div><html> </div> <div><head> </div> <div><title></title> </div> <div><meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </div> <div></head> </div> <div><body bgcolor="#FFFFFF" text="#000000" topmargin="5"> </div> <div><% </div> <div>String hello = "Hello world!this created by jsp file!"; </div> <div>out.println(hello); </div> <div>%> </div> <div></body> </div> <div></html> </div> <div><font color=#800080>三?q入 C:\JBOSS\myproject\src 目录Q新Z?HelloWorld.java Q是一?Servlet c,内容如下</font>Q?</div> <div>package hello; </div> <div>import java.io.*; </div> <div>import javax.servlet.*; </div> <div>import javax.servlet.http.*; </div> <div>public class HelloWorld extends HttpServlet </div> <div>{ </div> <div>public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException </div> <div>{ </div> <div>response.setContentType("text/html"); </div> <div>PrintWriter out = response.getWriter(); </div> <div>out.println("<hr>"); </div> <div>out.println("Hello World! This is created by Servlet!"); </div> <div>out.println("<hr>"); </div> <div>} </div> <div>} </div> <div>到此Q我们就建立好了用于试?JSP 文g?Servlet c,下面徏 HelloWorld 的无状?SessionBean ?</div> <div><font color=#800080>四?q入 C:\JBOSS\myproject\src 目录Q新Z?Hello.java 文gQ以实现 EJB ?Remote 接口Q内容如下,</font> </div> <div>package hello.ejb; </div> <div>/** </div> <div>* Remote interface for Enterprise Bean: Hello </div> <div>* Remote 接口 </div> <div>*/ </div> <div>public interface Hello extends javax.ejb.EJBObject { </div> <div>/** </div> <div>* 唯一的方?hello Q向客户端返回问候?</div> <div>*/ </div> <div>public String hello() throws java.rmi.RemoteException; </div> <div>} </div> <div>同样在此目录中新Z?HelloLocal.java 文gQ实?Local 接口Q内容如下: </div> <div>package hello.ejb; </div> <div>import javax.ejb.EJBLocalObject; </div> <div>public interface HelloLocal extends EJBLocalObject { </div> <div>public String hello(); </div> <div>} </div> <div>同样在此目录中新Z?HelloHome.java 文gQ实?Home 接口Q内容如下: </div> <div>package hello.ejb; </div> <div>/** </div> <div>* Home interface for Enterprise Bean: Hello </div> <div>* Home 接口 </div> <div>*/ </div> <div>public interface HelloHome extends javax.ejb.EJBHome{ </div> <div>/** </div> <div>* Creates a default instance of Session Bean: Hello </div> <div>*/ </div> <div>public Hello create() throws javax.ejb.CreateException, java.rmi.RemoteException; </div> <div>} </div> <div>同样在此目录中新Z?HelloLocalHome.java 文gQ实?LocalHome 接口Q内容如下: </div> <div>package hello.ejb; </div> <div>import javax.ejb.EJBLocalHome; </div> <div>public interface HelloLocalHome extends EJBLocalHome { </div> <div>HelloLocal create() throws javax.ejb.CreateException; </div> <div>} </div> <div>同样在此目录中新Z?HelloBean.java Q实?EJB c,?[ 容如下: </div> <div>package hello.ejb; </div> <div>/** </div> <div>* Bean implementation class for Enterprise Bean: Hello </div> <div>*/ </div> <div>public class HelloBean implements javax.ejb.SessionBean{ </div> <div>private javax.ejb.SessionContext mySessionCtx; </div> <div>/** </div> <div>* getSessionContext </div> <div>*/ </div> <div>public javax.ejb.SessionContext getSessionContext(){ </div> <div>return mySessionCtx; </div> <div>} </div> <div>/** </div> <div>* setSessionContext </div> <div>*/ </div> <div>public void setSessionContext(javax.ejb.SessionContext ctx){ </div> <div>mySessionCtx = ctx; </div> <div>} </div> <div>/** </div> <div>* ejbActivate </div> <div>*/ </div> <div>public void ejbActivate(){ </div> <div>} </div> <div>/** </div> <div>* ejbCreate </div> <div>*/ </div> <div>public void ejbCreate() throws javax.ejb.CreateException{ </div> <div>} </div> <div>/** </div> <div>* ejbPassivate </div> <div>*/ </div> <div>public void ejbPassivate(){ </div> <div>} </div> <div>/** </div> <div>* ejbRemove </div> <div>*/ </div> <div>public void ejbRemove(){ </div> <div>} </div> <div>/** </div> <div>* 商务Ҏ </div> <div>*/ </div> <div>public String hello(){ </div> <div>return "Hello,World! this is created by EJB!"; </div> <div>} </div> <div>} </div> <div>xQ我们己l将 EJB cL需的所有的所有类~写好了Q下面我们编写用于测试此 EJB E序的文Ӟ具体来说有两个:一个是用客L Servlet 来调?EJB Q另一个是用客LcL调用 EJB 。实现如下: </div> <div><font color=#800080>五?实现试 EJB 的程?/font> </div> <div>q入 C:\JBOSS\myproject\src 目录中,新徏一?HelloServlet.java 文gQ用于测试通过 Servlet 调用 EJB 。内容如下: </div> <div>package hello; </div> <div>import javax.servlet.*; </div> <div>import javax.servlet.http.*; </div> <div>import java.io.*; </div> <div>import javax.ejb.*; </div> <div>import javax.naming.InitialContext; </div> <div>import javax.naming.Context; </div> <div>import hello.ejb.*; </div> <div>import java.util.*; </div> <div>public class HelloServlet extends HttpServlet </div> <div>{ </div> <div>private HelloHome home; </div> <div>public void init() throws ServletException </div> <div>{ </div> <div>try </div> <div>{ </div> <div>String initCtxFactory = getInitParameter(Context.INITIAL_CONTEXT_FACTORY); </div> <div>String providerURL = getInitParameter(Context.PROVIDER_URL); </div> <div>Properties env = new Properties(); </div> <div>if(initCtxFactory!=null) </div> <div>{ </div> <div>env.put(Context.INITIAL_CONTEXT_FACTORY,initCtxFactory); </div> <div>} </div> <div>if(providerURL!=null) </div> <div>{ </div> <div>env.put(Context.PROVIDER_URL,providerURL); </div> <div>} </div> <div>Context ctx=new InitialContext(env); </div> <div>Object objRef = ctx.lookup("Hello"); </div> <div>// L?</div> <div>home=(HelloHome)javax.rmi.PortableRemoteObject.narrow(objRef,hello.ejb.HelloHome.class); </div> <div>}catch(javax.naming.NamingException ne){ </div> <div>System.out.println("Create Exception caught:"+ne); </div> <div>throw new ServletException(ne.toString()); </div> <div>}catch(Exception e) </div> <div>{ </div> <div>throw new ServletException(e.toString()); </div> <div>} </div> <div>} </div> <div>public void service(HttpServletRequest req,HttpServletResponse res) throws IOException </div> <div>{ </div> <div>res.setContentType("text/html"); </div> <div>PrintWriter out =res.getWriter(); </div> <div>out.println("<html><head><title>the first EJB</title></head>"); </div> <div>try{ </div> <div>// lg接口 </div> <div>Hello bean=home.create(); </div> <div>out.println(bean.hello()); </div> <div>}catch(javax.ejb.CreateException ce){ </div> <div>out.println("Create Exception caught:"+ce); </div> <div>ce.printStackTrace(out); </div> <div>}catch(java.rmi.RemoteException re){ </div> <div>out.println("Remote Exception caught:"+re); </div> <div>re.printStackTrace(out); </div> <div>} </div> <div>out.println("</body></html>"); </div> <div>} </div> <div>} </div> <div>同样在此目录中,新徏一?HelloClient.java 文gQ用于通过客户端类试 EJB Q内容如下: </div> <div>package hello.ejb; </div> <div>import java.util.*; </div> <div>import java.io.*; </div> <div>import javax.naming.InitialContext; </div> <div>import javax.rmi.PortableRemoteObject; </div> <div>import javax.naming.Context; </div> <div>import javax.rmi.PortableRemoteObject; </div> <div>import hello.ejb.*; </div> <div>public class HelloClient </div> <div>{ </div> <div>public static void main(String[] args) </div> <div>{ </div> <div>try </div> <div>{ </div> <div>//jndi 配置 , 应实Cؓ外部属性文?</div> <div>Properties env = new Properties(); </div> <div>//config.properties 文g应该攑֜?hello 包目录所在目录的同目录中。即它和 hello 文g夹同在一个文件夹中?</div> <div>env.load(new FileInputStream("config.properties")); </div> <div>// Get a naming context </div> <div>System.out.println(env); </div> <div>InitialContext ctx = new javax.naming.InitialContext(env); </div> <div>System.out.println("Got context"); </div> <div>// Get a reference to the Interest Bean </div> <div>//jboss 默认 jndi 名ؓ ejb-jar.xml 中的 :ejb-name </div> <div>Object ref = ctx.lookup("Hello"); </div> <div>System.out.println("Got reference"); </div> <div>// Get a reference from this to the Bean"s Home interface </div> <div>HelloHome home = (HelloHome)PortableRemoteObject.narrow(ref, HelloHome.class); </div> <div>// Create an Hello object from the Home interface </div> <div>Hello hello = home.create(); </div> <div>// call the hello() method </div> <div>System.out.println(hello.hello()); </div> <div>}catch(Exception e) </div> <div>{ </div> <div>System.out.println(e.toString()); </div> <div>} </div> <div>} </div> <div>} </div> <div>然后Q我们还需增加一个此客户端程序运行时所需?JNDI 配置文g。方法如下: </div> <div>q入 : C:\JBOSS\myproject\ejb\client 目录Q用C本新Z?config.properties 文gQ内容如下三行: </div> <div>java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory </div> <div>java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces </div> <div>java.naming.provider.url=jnp://localhost:1099 </div> <div><font color=#800080>六?~写服务器端的配|文Ӟ</font> </div> <div>首先q入 C:\JBOSS\myproject\jsp\hello.war\WEB-INF 目录Q用C本创Z?web.xml 文gQ用于配|?servlet Q内容如下: </div> <div><?xml version="1.0" encoding="gb2312"?> </div> <div><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "<a ><font color=#b32302>http://java.sun.com/dtd/web-app_2_3.dtd</font></a>"> </div> <div><web-app> </div> <div><servlet> </div> <div><servlet-name>HelloWorld</servlet-name> </div> <div><display-name>HelloWorld</display-name> </div> <div><servlet-class>hello.HelloWorld</servlet-class> </div> <div></servlet> </div> <div><servlet> </div> <div><servlet-name>HelloServlet</servlet-name> </div> <div><display-name>HelloServlet</display-name> </div> <div><servlet-class>hello.HelloServlet</servlet-class> </div> <div></servlet> </div> <div><servlet-mapping> </div> <div><servlet-name>HelloWorld</servlet-name> </div> <div><url-pattern>/HelloWorld</url-pattern> </div> <div></servlet-mapping> </div> <div><servlet-mapping> </div> <div><servlet-name>HelloServlet</servlet-name> </div> <div><url-pattern>/HelloServlet</url-pattern> </div> <div></servlet-mapping> </div> <div></web-app> </div> <div>然后q入 C:\JBOSS\myproject\ejb\hello.jar\META-INF 目录Q创Z?ejb-jar.xml 文gQ内容如下: </div> <div><?xml version="1.0" encoding="gb2312"?> </div> <div><!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" </div> <div>"<a ><font color=#b32302>http://java.sun.com/dtd/ejb-jar_2_0.dtd</font></a>"> </div> <div><ejb-jar> </div> <div><description>This is Hello EJB example</description> </div> <div><display-name>helloeEJB</display-name> </div> <div><enterprise-beans></div> <div><session> </div> <div><display-name>Hello</display-name> </div> <div><ejb-name>Hello</ejb-name> </div> <div><home>hello.ejb.HelloHome</home> </div> <div><remote>hello.ejb.Hello</remote> </div> <div><local-home>hello.ejb.HelloLocalHome</local-home> </div> <div><local>hello.ejb.HelloLocal</local> </div> <div><ejb-class>hello.ejb.HelloBean</ejb-class> </div> <div><session-type>Stateless</session-type> </div> <div><transaction-type>Container</transaction-type> </div> <div></session> </div> <div></enterprise-beans> </div> <div></ejb-jar> </div> <div>在此目录中,再徏一?jboss-service.xml 文gQ内容如下: </div> <div><?xml version="1.0" encoding="gb2312"?> </div> <div><jboss> </div> <div><enterprise-beans> </div> <div><session> </div> <div><ejb-name>Hello</ejb-name> </div> <div><jndi-name>Hello</jndi-name> </div> <div></session> </div> <div><secure>true</secure> </div> <div></enterprise-beans> </div> <div><reource-managers/> </div> <div></jboss> </div> <div><font color=#800080>七?到此为止Q我们将所有的试文g和配|文件己~写完成?/font> </div> <div><font color=#800080>八?下面我们~写~译q些cL件的脚本E序</font> </div> <div>q入 C:\JBOSS\BIN 目录下,新徏一?com.bat 文gQ内容如下: </div> <div>set classpath=.;c:\j2sdk1.4.2_06\lib\tools.jar;C:\JBOSS\client\jbossall-client.jar;C:\JBOSS\client\jboss-client.jar;C:\JBOSS\client\jboss-iiop-client.jar;C:\JBOSS\server\default\lib\jnpserver.jar;C:\JBOSS\client\jnp-client.jar;C:\JBOSS\client\log4j.jar;C:\JBOSS\client\jboss-j2ee.jar; C:\JBOSS\server\all\lib\javax.servlet.jar </div> <div>javac %1 </div> <div>同样在此目录新徏一?runclient.bat Q用于运行客LE序Q内容如下: </div> <div>set classpath=.;c:\j2sdk1.4.2_06\lib\tools.jar;C:\JBOSS\client\jbossall-client.jar;C:\JBOSS\client\jboss-client.jar;C:\JBOSS\client\jboss-iiop-client.jar;C:\JBOSS\server\default\lib\jnpserver.jar;C:\JBOSS\client\jnp-client.jar;C:\JBOSS\client\log4j.jar;C:\JBOSS\client\jboss-j2ee.jar; C:\JBOSS\server\all\lib\javax.servlet.jar </div> <div>java %1 </div> <div> </div> <div><strong>四、编译和q行试E序</strong> <br>1?q入 C:\JBOSS\myproject\src 目录中,q行 : </div> <div>com *.java </div> <div>生一pd .class 文g?</div> <div>2?生的 HelloWorld.class ?HelloServlet.class 拯?C:\JBOSS\myproject\jsp\hello.war\WEB-INF\classes\hello 目录中?</div> <div>3?生的 HelloHome.class ?HelloClient.class ?Hello.class 文g攑օ C:\JBOSS\myproject\ejb\client\hello\ejb 目录?</div> <div>4?生的 Hello.class ?HelloBean.class ?HelloHome.class ?HelloLocal.class ?HelloLocalHome.class 攑օ C:\JBOSS\myproject\ejb\hello.jar\hello\ejb 目录中?</div> <div>xQ我们己l完成了所有类的编译,q将它们攑օ到适当的地方,目前为止Q文件和目录分布l构如下图所C:</div> <div>q时Q我们将 myproject ?ejb 目录中的 hello.jar 目录?jsp 下的 hello.war 目录拯?</div> <div>C:\JBOSS\server\all\deploy 下?</div> <div>q时启动 JBOSS 的工作台自动会发布此两个目录。我们便可以试了?</div> <div>启动 JBOSS Q?</div> <div>run.bat –c all </div> <div>?IE 打开 <a href="http://localhost:8080/hello/index.jsp"><font color=#b32302>http://localhost:8080/hello/index.jsp</font></a> 试 JSP 文g </div> <div>?IE 打开 <a href="http://localhost:8080/hello/HelloWorld"><font color=#b32302>http://localhost:8080/hello/HelloWorld</font></a> 试 Serlvet </div> <div>?IE 打开 <a href="http://localhost:8080/hello/HelloServlet"><font color=#b32302>http://localhost:8080/hello/HelloServlet</font></a> 试?Servlet 调用 EJB </div> <div>然后q入 </div> <div>C:\JBOSS\myproject\ejb\client q行Q?</div> <div>Runclient hello/ejb/HelloClient</div> </div> <img src ="http://www.aygfsteel.com/topquan/aggbug/82260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/topquan/" target="_blank">topquan</a> 2006-11-20 14:51 <a href="http://www.aygfsteel.com/topquan/articles/82260.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">°Ͷ</a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank">üɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">׶</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ء</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank">ϲ</a>| <a href="http://" target="_blank">ũ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¹</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">մ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">®</a>| <a href="http://" target="_blank">߶</a>| <a href="http://" target="_blank">ǰ</a>| <a href="http://" target="_blank">ᶫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʩ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ѯ</a>| <a href="http://" target="_blank">Ҧ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>