??xml version="1.0" encoding="utf-8" standalone="yes"?>91久久影院,欧美精品三区,亚洲精品小视频http://www.aygfsteel.com/paulwong/category/13395.htmlzh-cnTue, 15 Nov 2011 20:09:58 GMTTue, 15 Nov 2011 20:09:58 GMT60如何基?Struts、Spring ?Hibernate 的应用从 Tomcat q移?WebSphere Application Serverhttp://www.aygfsteel.com/paulwong/archive/2011/11/15/363878.htmlpaulwongpaulwongTue, 15 Nov 2011 13:43:00 GMThttp://www.aygfsteel.com/paulwong/archive/2011/11/15/363878.htmlhttp://www.aygfsteel.com/paulwong/comments/363878.htmlhttp://www.aygfsteel.com/paulwong/archive/2011/11/15/363878.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/363878.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/363878.html引言

现在很多的企业都在用开源框架开发自q企业U应用,?Struts、Spring ?Hibernate {。v初由于受到资金和规模{的限制Q大部分应用都部|在 Tomcat ?Jboss {开源应用服务器上。但随着业务不断发展Q对应用部v的安全和性能要求也越来越高,企业希望现有的开源应用从开源服务器q移到商业应用服务器之上Q比如:WebSphere Application Server ( 以下UCؓ WAS)Q通过 WAS 增强应用整体性能Qƈ实现更加可靠的管理。本文将通过实例向大家介l如何将开源应用从 Tomcat q移?WASQƈ帮助大家解决一些可能遇到的普遍问题?br />

Z Eclipse 开发的 Struts、Spring ?Hibernate 开源应用和开发环境的特点

随着 Java 技术的逐渐成熟与完善,作ؓ建立企业U应用的标准q_QJ2EE q_得到了长的发展。借助?J2EE 规范中包含的多项技术:Enterprise JavaBean (EJB)、Java Servlets (Servlet)、Java Server Pages (JSP)、Java Message Service (JMS) {,大量的应用系l被开发出来。但是,在传l?J2EE 应用的开发过E中也出C一些问题,比如在存储和dq程中用大?SQL ?JDBC 操作Q会降低~程的效率以及系l的可维护性;q去传统?J2EE 应用多采用基?EJB 的重量框架 ( 比如QEJB 2.1)Q这样做的问题在于?EJB 容器q行开发和调试需要耗费大量旉q且耦合度非帔RQ不利于扩展?br /> 在摸索过E中Q各U开源框架孕育而生。开源框架以其免贏V开源和单等特点逐渐成ؓ开发h员的最爱,现在仍然有很多的企业使用开源框架开发自q应用E序。在开源框架中使用最多的是 Struts、Spring ?Hibernate 整合框架 ( 以下U?SSH 框架)?br /> 典型?J2EE 三层l构Q分现层、中间层Q业务逻辑层)和数据服务层。三层体pd业务规则、数据访问及合法性校验等工作攑֜中间层处理。客L不直接与数据库交互,而是通过lg与中间层建立q接Q再׃间层与数据库交互。下面就介绍以下 SSH 框架?J2EE 三层l构中的作用Q?br />
  • Struts 是一个在 JSP Model2 基础上实现的 MVC 框架Q主要分为模?(Model) 、视?(Viewer) 和控制器 (Controller) 三部分,其主要的设计理念是通过控制器将表现逻辑和业务逻辑解耦,以提高系l的可维护性、可扩展性和可重用性?/li>
  • Spring 是一个解决了许多 J2EE 开发中常见问题q能够替?EJB 技术的强大的轻量框架。这里所说的轻量U指的是 Spring 框架本nQ而不是指 Spring 只能用于轻量U的应用开发。Spring 的轻盈体现在其框架本w的基础l构以及对其他应用工L支持和装配能力。与传统 EJB ( 比如 EJB 2.1) 相比QSpring 可ɽE序研发人员把各个技术层ơ之间的风险降低。当Ӟ随着 Java EE 5 ?Java EE 6 中新 EJB 规范的出玎ͼ如:EJB 3.0, EJB 3.1QEJB 的开发变得越来越单。用户可以根据自q需求和能力Q选择合适的框架。想了解更多关于 Java EE 5 ?Java EE 6 中的内容Q请参考参考资?[4] ?[5]?/li>
  • Hibernate 是一个数据持久层框架Q是一U实现对象和关系之间映射 (O/R Mapping) 的工P它对 JDBC q行了轻量的对象封装,使程序员可以使用对象~程思想来操作数据库。它不仅提供了从 Java cd数据表的映射Q也提供了数据查询和恢复机制。相对于使用 JDBC ?SQL 来操作数据库Q?Hibernate 能大大的提高开发效率?
SSH 框架虽然非常强大Q但也有一些缺点,比如 : 相比 Servlet+JDBC 开发方式,复杂度增加了不少 ; 而且开源框架开发和部v的灵zL,使得其用方式不是很W合现有?J2EE 规范Q从而导致从 Tomcat 或其他开源服务器上迁Ud WAS 会出现很多问题和异常。ƈ且,因ؓ默认?Eclipse ?MyEclipse 工具~少 WAS 的运行时插gQ得开发的开源应用程序无法直接从 IDE 里部|到 WAS。接下来Q我们会分步介绍?Tomcat q移?WAS 可能出现的问题,虽然不能늛q移q程中的所有问题,但希望能够抛砖引玉,量解决一些普遍存在的问题?br /> 以下使用的实例是利用 Struts2+Spring2+Hibernate3 开发的模拟医院理应用。其中功能模块包括前台的昄模块、登录模块、后台的文章和药品管理模块、用L理模块等基本模块Q数据库包括药品、文章、学生、教师和看病{数据表。我们利?Struts 实现 MVC 模型处理前台的各U请求;利用 Hibernate 数据持久化q简化对数据的查询;利用 Spring q行依赖注入控制整个业务逻辑层。图 1 为应用的部分包和配置文gl构

?1. 应用部分包结构和相关配置文g
?1. 应用部分包结构和相关配置文g

配置?MYSQLQ将应用部v?Tomcat 正常昄面如下Q?/p>
?2. 应用主页
?2. 应用主页
q里需要注意的是,׃开源框架的开发和目录l构不规范,D?WAS 中部|?WAR 文gp|。您可能会看到诸?#8220;EAR 文g可能已损坏或不完整。确保对?WebSphere Application ServerQ该应用E序处于兼容?Java 2 Platform, Enterprise Edition (J2EE) U别?#8221;q样的错误?br />
?3. WAS 中应用部|错?/font>
?3. WAS 中应用部|错? src=
遇到上述错误的原因,可能是因?WAR 文g中包?EXE 文g或?WAR 文gl构不规范,Lq些文g或调整文件结构即可解册错误?br />


q移之前的准备工?/font>

q移之前的准备工作非常关键。我们首先要保应用可以?Tomcat 成功q行Q当然我们还需要确认以下几个方面:
  1. Tomcat 启动正常
  2. Struts、Spring ?Hibernate 所需要的 lib 包都包含在应用的 WAR 或?EAR 包中
  3. 应用?Tomcat 上部|ƈ且启动成?/li>
  4. 应用?Struts 功能启动成功Qƈ能正常处理请?/li>
  5. 应用的数据库q接正常QHibernate 映射成功q能正常实现数据持久?/li>
  6. 应用?Spring 功能成功Qƈ能将所需要的资源注入到应用中
  7. 试应用的其他功能确保应用整体运行正?
同时查看 Tomcat、Eclipse 的日志,保应用没有~译异常或错误。当然我们利?Eclipse 或?MyEclipse 开发应用时可能会用?WAS 的插Ӟ我们在部|之前一定要保pȝ中只有一?WAS 实例在运行。如果其?WAS 实例q行Q可能会出现端口冲突{错误,q时 WAS 会提CZ些错误:
清单 1. WAS 端口冲突错误
            org.omg.CORBA.INTERNAL: CREATE_LISTENER_FAILED_4 vmcid: 0x49421000 minor code:
            Caused by: org.omg.CORBA.INTERNAL: CREATE_LISTENER_FAILED_4  vmcid: 0x49421000  minor
            code: 56  completed: No
            at com.ibm.ws.orbimpl.transport.WSTransport.createListener(WSTransport.java:719)
            at com.ibm.ws.orbimpl.transport.WSTransport.initTransports(WSTransport.java:591)
            at com.ibm.rmi.iiop.TransportManager.initTransports(TransportManager.java:155)
            at com.ibm.rmi.corba.ORB.set_parameters(ORB.java:1212)
            at com.ibm.CORBA.iiop.ORB.set_parameters(ORB.java:1662)
            at org.omg.CORBA.ORB.init(ORB.java:364)
            at com.ibm.ws.orb.GlobalORBFactory.init(GlobalORBFactory.java:86)
            at com.ibm.ejs.oa.EJSORBImpl.initializeORB(EJSORBImpl.java:179)
            at com.ibm.ejs.oa.EJSServerORBImpl.<init>(EJSServerORBImpl.java:102)
            at com.ibm.ejs.oa.EJSORB.init(EJSORB.java:55)
            at com.ibm.ws.runtime.component.ORBImpl.start(ORBImpl.java:379)
            ... 26 more
            

WAS 在启动的时候抛Z上异常,q主要是因ؓ端口冲突Q我们可以查看系l中是否有已l启动的 WAS 或者别的程序正在占用此端口。也可以通过修改概要文g config\cells\cellname\nodes\nodename 目录下的 serverindex.xml 文g中的端口解决?br /> 应用和环境都没问题了Q我们就可以着手迁Ud用了?br />

部v?Struts 框架可能遇到的问题所遇到的问?/font>

Struts 框架最早是作ؓ Apache Jakarta 目的组成部分问世运作,它承了 MVC 的各特性,q根?J2EE 的特点,做了相应的变化与扩展。Struts 框架很好的结合了 JspQJava ServletQJava BeanQTaglib {技术?br /> 不论?Struts1 q是 Struts2Q很多部|问题都?lib 包冲H有养I所以在部v应用的时候要量查看一下应?WAR 文g本n是否存在怺冲突?jar 文gQWAR 文g?WAS 所带的包是否存在相互冲H。我们ȝ了一?Struts 包冲H的问题供大家参考:
启动应用的时候报 Unable to load bean typecom.opensymphony.xwork2.ObjectFactory classorg.apache.struts2.impl.StrutsObjectFactory 错误。这U错误多是由?WAS 中存在相?sturts2-core jar 文g与应?WAR 或?EAR 文g?struts 包冲H。徏议删?WAR 包中?jar 文gQ即可解x问题?br /> q有一U情冉|?Tomcat 下项目运行没有Q何问题,但把 WAR 包安装在 WAS 中只能访?HTML 面了,其余?Struts2 的请求和 JSP 面都不能访问,提示您无权查看此面Q查?WAS 日志文g中发玎ͼ启动时有cM错误Q?br /> 清单 2. WAS 包冲H错?/font>
            [11-8-18 15:17:41:079 CST] 00000010 webapp E com.ibm.ws.webcontainer.webapp.WebApp
            initializeExtensionProcessors SRVE0280E:
            扩展处理器无法在工厂
            [com.ibm.ws.jsp.webcontainerext.ws.WASJSPExtensionFactory@2bec2bec]
            中进行初始化Qjava.lang.ClassCastException:
            com.sun.faces.application.WebappLifecycleListener
            incompatible with java.util.EventListener
            ……
            [10-8-18 15:17:41:562 CST] 00000010 config I Initializing
            Sun's JavaServer Faces implementation (1.2_07-b03-FCS) for context '/cc'
            [10-8-18 15:17:44:579 CST] 00000010 webapp W com.ibm.ws.webcontainer.webapp
            .WebApp initializeTargetMappings SRVE0269W: 找不到用于处?JSP 的扩展处理器?
            

解决Ҏ有两U:
  • 在应用程序服务器 -> [ 选择所使用的服务器 ] -> Web 容器讄 -> Web 容器 -> 定制属性,增加名称?com.ibm.ws.webcontainer.invokefilterscompatibility"的定制属性,D?true?/li>
  • 或者检?WAR 文g?lib 库中是否?jsf-api.jarQjsf-impl.jarQjstl-1.2.jar 三个 jar 文g。这是因为在使用 MyEclipse 开发时QMyEclipse 会自动将q三?jar 文g加入?lib 库中Q但 jsf-impl.jar 包中?com.sun.faces.application.WebappLifecycleListener ?java.util.EventListener 不兼容导致应用无法访问,打开 WAR 包的 lib 目录Q删除这三个 lib 包即可解决问题?

部v?Spring 框架可能遇到的问题所遇到的问?/font>

Spring 框架支持轻量U的企业应用开发。作为开源项目,Spring 框架得到了广泛的支持。目前大多数 SSH 架构的开源应用以 Tomcat 作ؓ开发以及测试的 Web 容器?WAS 也同h持基?Spring 框架的项目开发和部vQ除了支?Spring 框架本n的资源管理以及支持事务的Ҏ外QWAS 也可以依靠自w的容器理、事务支持等带来更加可靠的运行时环境。本文该部分初步介l基?Spring 框架的开源应用从 Tomcat 上移植到 WAS 上需要注意的斚w? 使用 Spring 开发的应用可以同时使用 Struts ?Hibernate。整合了 Struts、Spring ?Hibernate q行开发的应用只要保证需要的 JAR 包全部打包在应用中,便可以正的部v?WAS 上。其中,WAS 不提?Tomcat ~省提供的一些开?JAR 包,需要将q些包包含在应用中。此外,WAS 提供了很?J2EE 相关Ҏ,如果 Spring 要用这些特性,则需要对 Spring 做相关配|?

数据讉K

Spring 整合 Hibernate Ӟ数据源配|信息应该定义在 applicationContext.xml 文g中。清?3 l出了一个典型的配置数据源信息的CZ。您可以这D代码不做Q何修改,加入?applicationContext.xml 文g中,q放到打包之后的应用中,WAS 会自动识别ƈ利用 Spring 框架完成数据源的配置?
清单 3. applicationContext.xml 文g中的数据源配|?/font>
            <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver"></property>
            <property name="url" value="jdbc:db2://localhost:50000/MYTEST"></property>
            <property name="username" value="db2admin"></property>
            <property name="password" value="password"></property>
            </bean>
            <bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="dataSource">
            <ref bean="dataSource" />
            </property>
            <property name="hibernateProperties">
            <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>
            </props>
            </property>
            <property name="mappingResources">
            <list><value>com/ibm/user/Person.hbm.xml</value></list>
            </property>
            </bean>

您也可以使用 WAS 中已l配|好的数据源Q在 Spring 的配|文?applicationContext.xml 文g中声明数据源的代?BeanQ将 WAS 的数据源{资源通过?Bean 委托l?Spring 框架q行调用。清?4 l出了一个用该方式q行配置?applicationContext.xml 文g的片Dc应用在q行时会使用?Bean 扑ֈ相应的数据源完成与数据库的交互?
清单 4. applicationContext.xml 文g中配|?WAS 数据?/font>
            <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName"><value> java:comp/env/jdbc/SSHTestDB</value></property>
            </bean>

事务理

Spring 框架?WAS 一h持两U事务管理的方式Q分别ؓ~程式和声明式。大多数的用户会选择声明式的事务理方式Q这U方式也是推荐用的?br /> 通常情况?Spring 事务理的一个核心是 PlatformTransactionManager 接口Q用声明方式的事务理的类均实现该接口Q如Ҏ据源q行事务理?DataSourceTransactionManagerQ对 Hibernate q行事务理?HibernateTransactionManager {。用户可以选择l箋使用q些事务理ҎQ在 applicationContext.xml 文g中做相应的配|,如清?5 所C,然后打包部v?WAS 上完成应用的安装和配|?
清单 5. Spring 框架的事务管理配|?/font>
            <bean id="txManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
            </bean>
            <bean id="txManager"
            class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory" />
            </bean>
            

其中 ref=”dataSource” 对应于清?3 中的 Bean id=”dataSource”Qref=”sessionFactory”对应于清?3 中的 bean id="sessionFactory"? WAS 支持 JTAQ?Spring 也提供了 JtaTransactionManager。因此也可以?Spring 中的事务理交给 WAS 来做。Spring 2.5 之后提供的特定于 WAS 的事务管理的实现cMؓ WebSphereUowTransactionManagerQ您可以?applicationContext.xml 文g中进行相应的配置Q将事务的管理交?WAS 来做。如清单 6 所C。其中配|的 bean id="transactionManager" q不需要知道自׃ؓ哪些资源负责Q因为它使用?WAS 容器的全局事务理体系?
清单 6. Spring 配置 WAS 的事务管?/font>
            <bean id="txManager"
            class="org.springframework.transaction.jta.WebSphereUowTransactionManager">
            </bean>
            <bean id="transactionManager"
            class="org.springframework.transaction.jta.JtaTransactionManager">
            <property name="transactionManager">
            <ref local="txManager"/>
            </property>
            </bean>


Hibernate 做ؓ数据持久层框枉常灵z,易于上手Qƈ且便于与其它开源框架整合,从而它成为开源解x案中数据持久层框架的不二选择。Hibernate ?3.2 开始,开始兼?JPA。Hibernate3.2 获得?Sun TCK ?JPA (Java Persistence API) 兼容认证。这使它的应用范围更加广泛。这里介l将使用 Hibernate 做ؓ持久层的应用UL?WAS 上时需要注意的斚w? 在项目初期,׃定位或需求的原因Q很?Hibernate 应用都?Tomcat ?Jboss 做ؓ应用服务器。随着目规模来大Q对应用的可靠性和安全要求来高Q就会考虑向商业应用服务器的迁URȝ来说Q对一个可以正常运行在 Tomcat ?Jboss 上的应用来说Q移植到 WAS 上非常简单,q不需要做太多改动Q只需要将应用所依赖?Hibernate 相关 jar 包都打包在应用中Q再更具情况寚w|文件做d调整卛_Q不用修改Q?Java 源代码?

保持原有q接方式

很多 Hibernate 应用采用 JDBC 的链接方式,卛_配置文g hibernate.cfg.xml 中配|?connection.url 属性,指定数据库链接信息。例如:<property name="connection.url">jdbc:db2://db2url:port/dbname</property>
q种应用E序往往q要使用W三Ҏ供的数据库连接池Q例?C3P0 {。如果在UL?WAS 之后仍然想保持现有连接Ş式和数据库连接池不变Q则不需要对配置文g做Q何修改,只需要将W三Ҏ供的数据库连接池所依赖?jar 包文件一同打包到 WAS 应用中即可。例如将 C3P0 数据库连接池 jar 文g c3p0-0.9.1.jar 打包到应用程?lib 目录下?

使用 WebSphere Application Server 数据?/strong>

WAS 数据源有着众多企业U优势,很多用户UL后都希望能用到 WAS 做ؓ企业U应用服务器数据层的强大功能Q对 Hibernate 的移植也不例外。其实将 Hibernate 应用的数据源UL?WAS 非常单,只需要在 hibernate.cfg.xml 配置文g中加入数据源属?connection.datasource ?JNDI 提供商信息即可,无需修改M源代码。这里需要注意,一旦配|好 WAS 的数据源QWAS 接与数据库通信的工作,如果在您以前的应用中使用了第三方数据库连接池Q将会生冲H。解x法也很简单,只要?hibernate.cfg.xml 配置文g中的关于W三Ҏ据库q接池的信息注释或删除即可? ȝh可分Z步:
  1. 数据库q接信息

    <property name="connection.url">jdbc:db2://db2url:port/dbname</property>

    替换?WAS 数据源信?/p>

    <property name="connection.datasource">jdbc/hibernate</property>

  2. 加入 jndi.class 属?

    <property name="jndi.class">com.ibm.websphere.naming.WsnInitialContextFactory</property>

  3. 注释或删除原有数据库q接池相兛_?

现在的开源框架越来越庞大Q同一框架不同版本的区别也很大。这文章虽不能覆盖开源框架迁Ud WAS 的所有问题,但ȝ的都是一些比较普遍的问题Q力求让用户快速地发现和解决部|和q移q程中的问题。在q移q程中,应用的代码基本不需要修改,只要配置和部|得当,?Tomcat 开源应用迁Ud WAS q不是一仉事?img src ="http://www.aygfsteel.com/paulwong/aggbug/363878.html" width = "1" height = "1" />

paulwong 2011-11-15 21:43 发表评论
]]>
Websphere 安装配置实录http://www.aygfsteel.com/paulwong/archive/2009/09/19/295657.htmlpaulwongpaulwongSat, 19 Sep 2009 04:52:00 GMThttp://www.aygfsteel.com/paulwong/archive/2009/09/19/295657.htmlhttp://www.aygfsteel.com/paulwong/comments/295657.htmlhttp://www.aygfsteel.com/paulwong/archive/2009/09/19/295657.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/295657.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/295657.html1、安装前准备
1Q、检查磁盘空间的分配
2Q、端口有没有冲突Q?
WebSphere应用服务器缺省占用的端口包括Q管理控制台端口9090Q管理控制台安全端口9043QHTTP传输端口9080QHTTPS传输端口 9443QSOAP通信端口8880Q在|络部v版这个端口是8879Q等。如果系l中已有应用占用了这些端口,那么应用服务器启动的时候就会报告端口冲 H的错误。一般可以用netstat或nmap来查看系l端口的使用情况?
3Q、服务器的主机名
应该在安装Websphere之前配置L?hostname)?etc/hosts文g要有相应的条目?
4Q、用户名和用L的徏?
WebSphere应用服务器中内置了一个基于WebSphere MQ的JMS服务器。在UNIX/LINUXq_上安装的时候,如果选择了完全安装或在定制安装的时候选择了安?嵌入式消息传?Q那么就要在安装开?前先创徏两个用户lmqm和mqbrkrs和一个用户mqm。而且需要将?nbsp; 阅读全文

paulwong 2009-09-19 12:52 发表评论
]]>
怎样lwebsphere理面讄权限Q?/title><link>http://www.aygfsteel.com/paulwong/archive/2006/10/10/74356.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Tue, 10 Oct 2006 11:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2006/10/10/74356.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/74356.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2006/10/10/74356.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/74356.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/74356.html</trackback:ping><description><![CDATA[----步骤 1. 用计机理员̎戯入本机wingdows操作pȝQ启动WAS服务器后Q从 WebSphere 理控制収ͼ展开安全?Q?gt; 用户注册表。单L地OS(本地操作pȝ)Qƈ输入 WebSphere 理员标识?<br /><br /><br />a. 在服务器用户标识字段输入理员用h识?<br />b. 在服务器用户密码字段输入与标识关联的密码?br />单击定?br /><br /><br />----步骤 2. 转到全局安全性窗口,单击启用安全性。请验证实施 Java 2 安全性已关闭。其它选项默认?br /><br /><br />----步骤 3. 单击定Q?gt; 保存?br /><br /><br />----步骤 4. 重新启动 WAS 服务器以使更改生效?img src ="http://www.aygfsteel.com/paulwong/aggbug/74356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2006-10-10 19:24 <a href="http://www.aygfsteel.com/paulwong/archive/2006/10/10/74356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Websphere Application Server心得http://www.aygfsteel.com/paulwong/archive/2006/07/28/60502.htmlpaulwongpaulwongFri, 28 Jul 2006 02:27:00 GMThttp://www.aygfsteel.com/paulwong/archive/2006/07/28/60502.htmlhttp://www.aygfsteel.com/paulwong/comments/60502.htmlhttp://www.aygfsteel.com/paulwong/archive/2006/07/28/60502.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/60502.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/60502.html
解析JAVA的指令,能对HTTP的请求作响应Q能解析EJB指o?br />
    WAS只须装一ơ,p自定义多个CONTAINERQ表现在讉K的网址上ؓ不同?br />
端口?br />
    部v在WAS上的J2EEE序包只能是EAR包或WAR包,如果一个项目内必需多个

WEB的PROJECT,则只能部|EAR包,EAR包中指定所要包含的WEB PROJECTQ事?br />
上EAR包的作用是指定目中有几个WEB PROJECT而已Q如果一个项目中只有

一个WEB PROJECTQ则部vEAR包或WAR包均可以?br />
    安装EAR包或WAR包都是从控制台的“安装新应用E序”中开始,两者的区别

是安装EAR包无L定上下文根,卻Ihttp://localhost:9080/web1中的web1Q?br />
而安装WAR包则必须指定上下文根Q其余则没什么区别,均须指定安装在哪?br />
CONTAINER上,是否可以使用别名Q网址上的不同Q等?br />
    打包可用Application Server ToolKitQ支持从CVS上下载代码?br />

paulwong 2006-07-28 10:27 发表评论
]]>
MyEclipse+WebSphere 通过 JNDI q接 Sybase ? http://www.aygfsteel.com/paulwong/archive/2006/07/24/59855.htmlpaulwongpaulwongMon, 24 Jul 2006 09:12:00 GMThttp://www.aygfsteel.com/paulwong/archive/2006/07/24/59855.htmlhttp://www.aygfsteel.com/paulwong/comments/59855.htmlhttp://www.aygfsteel.com/paulwong/archive/2006/07/24/59855.html#Feedback1http://www.aygfsteel.com/paulwong/comments/commentRss/59855.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/59855.html阅读全文

paulwong 2006-07-24 17:12 发表评论
]]>
WebSphere中流行数据库q接池的配置(Oracle、SQL Server、Sybase、MySQL)http://www.aygfsteel.com/paulwong/archive/2006/07/24/59838.htmlpaulwongpaulwongMon, 24 Jul 2006 08:15:00 GMThttp://www.aygfsteel.com/paulwong/archive/2006/07/24/59838.htmlhttp://www.aygfsteel.com/paulwong/comments/59838.htmlhttp://www.aygfsteel.com/paulwong/archive/2006/07/24/59838.html#Feedback2http://www.aygfsteel.com/paulwong/comments/commentRss/59838.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/59838.html
一、系l准?br />1.在相应的数据库中建立本文用到的表

create table TEST(C1 CHAR(10) )
insert into TEST values('FromTest')


2.准备环境变量Q此部分往往会被初学者忽略?br />



点击“管理WebSphere变量”,ORACLE_JDBC_DRIVER_PATH的D入操作系l中jar文gQclasses12.jarQ的位置?br />“确认”后Q界面最上方Q点几Z保存”,会再提示“保存”还是“放弃”,再选“保存”?br />
为方便v见,本文中,SQL Server的jar文gQmsbase.jar、mssqlserver.jar、msutil.jar Q、Sybase的jar文gQjconn2.jarQ、mySQL的jar文gQmysql-connector-java-3.1.10-bin.jarQ都攑֜同一目录Q如QC:\oracle\ora92\jdbc\libQ?br />
3.本文中的所有例子测试均通过Q环境:Windows2003、WebShpere5.1、ORACLE9I、SQL Server 2000、SYBASE12.5、MySQL5.0?br />
二、Oracle、SQL Server、Sybase、MySQL数据库连接池在WebSphere中的详细配置步骤

Q一Q、Oracleq接池的配置

1.q入理控制収ͼhttp://localhost:9090/admin/Q?br />
2.选择Q资?>JDBC提供E序Q点几Z新建”,建立JDBC提供E序?br />



点击“应用”后Q类路径中,输入?{ORACLE_JDBC_DRIVER_PATH}/classes12.jar”,再点几Z应用”?br />
3.定义数据?br />点击界面中“数据源后”再点击“新建”,建立数据源?br />


JNDI取名ORACLE_JNDIQ点几Z应用”?br />
4.界面上点几Z定制属性”,定义q接池的JDBC Driver、URL、用户名和口令等信息?br />点击“URL?URL的D入:jdbc:oracle:thin:@localhost:1521:MYHORAQ其中,localhost可以为ORACLE的IP地址QMYHORA是ORACLE的服务名U?br />点击“确定”保存配|?br />同样的方法输入:
driverType的值oracle.jdbc.driver.OracleDriver
databasename的值MYHORA
servername的值localhost
preTestSQLString的gؓSELECT COUNT(1) FROM TEST
其余的取默认倹{?br />
5.本部分比较关键,是初学着比较困惑的地斏V?br />我们看到Q界面上q没有输入用户名、口令的地方Q而没有用户名U、口令是无法q接数据库的?br />



在“定制属性”中点击“新建”,“名U”中输入userQ“值”中输入数据库的用户名称Q如QstudyQ点几Z确定”;
在“定制属性”中点击“新建”,“名U”中输入passwordQ“值”中输入数据库的口oQ如QstudyQ点几Z确定”;
我们看到Q“定制属性”中多了两个我们自定义的属性user、password



resized image

6.保存配置Q在“定制属性”界面的最上方点击“保存”?br />
7.试q接





pȝ提示Q成功信息,表明Q连接池配置成功?br />q接池配|成功后QWebSphere需要重新启动?br />
Q二Q、SQL serverq接池的配置

SQL Serverq接池的配置步骤同OracleQ具体的参数|
JDBC 提供E序Q下拉选择Microsoft JDBC driver for MSSQLServer 2000
Sybaseq接池的配置步骤也同OracleQ具体的参数|
常规属性中的名UͼMicrosoft JDBC driver for MSSQLServer 2000
常规属性中的描qͼMicrosoft JDBC driver for MSSQLServer 2000
常规属性中的类路径Q?br />${ORACLE_JDBC_DRIVER_PATH}/msbase.jar
${ORACLE_JDBC_DRIVER_PATH}/mssqlserver.jar
${ORACLE_JDBC_DRIVER_PATH}/msutil.jar

常规属性中的实现类名:默认
数据源中的名UͼSQLSERVER_JNDI
数据源中的JNDIQSQLSERVER_JNDI
定制属性中的databaseNameQ数据库名称
定制属性中的serverNameQSybase数据库服务器的名U或IP
定制属性中的portNumberQ端口号
定制属性中的preTestSQLStringQSELECT COUNT(1) FROM TEST
同OracleQ手工“新建”user和password属性,gؓ数据库的用户名和口oQ该用户的缺省数据库必须为databaseName的倹{?br />其他默认?br />
Q三Q、Sybaseq接池的配置

JDBC 提供E序Q下拉选择Sybase JDBC Driver
Sybaseq接池的配置步骤也同OracleQ具体的参数|
常规属性中的名UͼSYBASE JDBC Driver
常规属性中的描qͼSYBASE JDBC Driver
常规属性中的类路径Q?{ORACLE_JDBC_DRIVER_PATH}/jconn2.jar
常规属性中的实现类名:默认
数据源中的名UͼSYBASE_JNDI
数据源中的JNDIQSYBASE_JNDI
定制属性中的databaseNameQ数据库名称
定制属性中的serverNameQSybase数据库服务器的名U或IP
定制属性中的portNumberQ端口号
定制属性中的preTestSQLStringQSELECT COUNT(1) FROM TEST
同OracleQ手工“新建”user和password属性,gؓ数据库的用户名和口oQ该用户的缺省数据库必须为databaseName的倹{?br />其他默认?br />
Q四Q、MySQLq接池的配置

MySQLq接池的配置步骤同OracleE有不同QJDBC 提供E序中ƈ没有MySQL中的选项Q选Oracle JDBC Driver可以,实际q行中,WebSphere是以讄的参Cؓ准的?br />
具体的参数|
常规属性中的名UͼMySQL JDBC Driver
常规属性中的描qͼMySQL JDBC Driver
常规属性中的类路径Q?{ORACLE_JDBC_DRIVER_PATH}/mysql-connector-java-3.1.10-bin.jar
常规属性中的实现类名:com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
数据源中的名UͼMYSQL_JNDI
数据源中的JNDIQMYSQL_JNDI





׃WebSphere没有~省的MySQL选项Q“定制属性”全部需要手工新建。具体的DҎMySQL的实际环境要做相应修改(petshop是我机器上的数据库名Uͼ?br />
三、应用程序中试q接池?br />
1. jspE序中测试连接池

附g中的TestConnPoolWeb.ear文g直接发布后,
q行Qhttp://localhost:9080/TestConnPoolWeb/oracle_pool.jspQ结果:ORACLE_JNDI:FromTest
q行Qhttp://localhost:9080/TestConnPoolWeb/sqlserver_pool.jspQ结果:SQLSERVER_JNDI:FromTest
q行Qhttp://localhost:9080/TestConnPoolWeb/sybase_pool.jspQ结果:SYBASE_JNDI:FromTest
q行Qhttp://localhost:9080/TestConnPoolWeb/mysql_pool.jspQ结果:MYSQL_JNDI:FromTest

2. E序说明

得到q接的方法:

private static Connection getConnection(String strConnPoolJndi) throws NamingException, SQLException {
Context ctx 
= null;
ctx 
= new InitialContext();
DataSource ds 
= (DataSource)ctx.lookup(strConnPoolJndi);
Connection conn 
= ds.getConnection();

return conn;

}


参数strConnPoolJndi分别为:ORACLE_JNDI、SQLSERVER_JNDI、SYBASE_JNDI、MYSQL_JNDIQ对于相应的数据库?br />从表中查询一条数据:

public static String getDBData(String strConnPoolJndi) {
String strReturn
="";
Connection conn 
= null;
Statement st 
= null;
ResultSet rs 
= null;

try {
conn 
= getConnection(strConnPoolJndi);
st 
= conn.createStatement();
rs 
= st.executeQuery( "select C1 from TEST" );

if (rs.next()) {
strReturn 
= rs.getString(1);
}

}


jsp中打印出表中的一条记录:

<%
out.println(
"ORACLE_JNDI:" + test.pool.TestPool.getDBData("ORACLE_JNDI"));
%>



附gTestConnPoolWeb.earQ包括源E序Q?br />[Download File]

paulwong 2006-07-24 16:15 发表评论
]]>
վ֩ģ壺 Ϫ| | | Ͷ| | | ޭ| | ̺| | IJ| ɽ| | | Ϫ| | ʱ| ɽ| | | ɽ| Ϫ| ʯ¥| ɽ| | | | | | | | Զ| Ǩ| | | Դ| | | Ϫ| | |