论坛首页 Java企业应用论坛

JBOSS3.x 学习笔记

浏览 14497 次
该帖已经被评为精华帖
作者 正文
   发表时间:2003-09-15  
JBOSS3.x 学习笔记
作者:Thatway (outhatway@hotmail.com)
来自:http://www.hibernate.org.cn


目  录

一. 运行环境 2
二. 准备工作 2
三. 安装 2
四. 配置实例xPetStore 2
五. 结束语 8


一. 运行环境
操作系统:Windows 2000
应用服务器:Jboss3.x
数据库:MySQL4.x
虚拟机: SUN JDK1.4.x

二. 准备工作
1.请安装JDK1.4.x版本,设置JAVA_HOME变量,并把“%JAVA_HOME%\bin”加入Path中。
2.请下载Jboss3.x。主站地址http://www.jboss.org/。
3.请下载并安装MySQL4.x。主站地址http://www.mysql.org/。


三. 安装
1. 把压JBOSS下载文件解压。本文假设解压后路径为C:\Work\jboss-3.2.2RC2。
2. 设置JBOSS_HOME变量。进行命令窗口,运行bin目录下的run.bat命令。请注意后台有没有抛出异常。
3. 约半分钟后启动完毕,请访问http://localhost:8080/jmx-console/。如果成功显示页面,说明安装成功。
4. 进行命令窗口,运行bin目录下的shutdown.bat -S命令可以停止JBOSS。


四. 配置实例xPetStore
1. 创建JBOSS“xpetstore”服务
在JBOSS_HOME/server/下新建目录xpetstore,并把JBOSS_HOME/server/default下的内容拷贝到xpetstore下。

2. 配置JMS
Create JBOSS_HOME\server\xpetstore\deploy\jms\jbossmq-destinations-xpetstore-service.xml to create JMS queues queue/order and queue/mail.

This xml file should look like this:
<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: jbossmq-destinations-xpetstore-service.xml,v 1.0 2003-8-11 15:47 et Exp $ -->

<server>
  <!-- Destination without a configured SecurityManager or without a 
       a SecurityConf will default to role guest with read=true, write=true,
       create=false.
  -->

  <mbean code="org.jboss.mq.server.jmx.Queue"
	 name="jboss.mq.destination:service=Queue,name=order">
    <attribute name="JNDIName">queue/order</attribute>
    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
  </mbean>
  
  <mbean code="org.jboss.mq.server.jmx.Queue"
	 name="jboss.mq.destination:service=Queue,name=mail">
    <attribute name="JNDIName">queue/mail</attribute>
    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
  </mbean>

</server>


3. 配置JDBC
Copy the JDBC driver to JBOSS_HOME/server/xpetstore/lib。
Rename JBOSS_HOME/server/xpetstore/deploy/hsqldb-ds.xml to mysql-ds.xml.
Edit mysql-ds.xml to create the datasource java:/xpetstoreDS。

JBOSS_HOME/server/xpetstore/deploy/mysql-ds.xml should look like this:
<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: mysql-ds.xml,v 1.0 2003-8-11 15:56 et Exp $ -->


<datasources>
  <local-tx-datasource>
  
    <depends>jboss:service=Hypersonic</depends>
  
    <jndi-name>xpetstoreDS</jndi-name>
    <connection-url>jdbc:mysql://localhost/xpetstore</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>thatway</user-name>
    <password>thatway</password>
    <min-pool-size>5</min-pool-size>
    <security-domain>HsqlDbRealm</security-domain>
  </local-tx-datasource>

  <!-- this mbean should be used only when using tcp connections -->
  <mbean code="org.jboss.jdbc.HypersonicDatabase" 
	 name="jboss:service=Hypersonic">
    <attribute name="Port">1701</attribute>
    <attribute name="Silent">true</attribute>
    <attribute name="Database">default</attribute>
    <attribute name="Trace">false</attribute>
    <attribute name="No_system_exit">true</attribute>
  </mbean>
  
</datasources>


4. 配置JavaMail
Create the MailSesion java/:Mail.

Make sure that JBOSS_HOME/server/xpetstore/deploy/mail-service.xml look like this:
<server>
  <classpath codebase="lib" 
             archives="mail.jar, activation.jar, mail-plugin.jar"/>

  <mbean code="org.jboss.mail.MailService"
         name="jboss:service=Mail">
    <attribute name="JNDIName">Mail</attribute>
    <attribute name="User">your-user-name</attribute>
    <attribute name="Password">your-password</attribute>
    <attribute name="Configuration">
       <configuration>
          <property name="mail.store.protocol" value="pop3"/>
          <property name="mail.transport.protocol" value="smtp"/>
          <property name="mail.user" value="your-username"/>
          <property name="mail.pop3.host" value="your-pop3-host"/>
          <property name="mail.smtp.host" value="your-smtp-host"/>
          <property name="mail.from" value="noreply@xpetstore.sourceforge.net"/>
          <property name="mail.debug" value="false"/>
       </configuration>
    </attribute>
  </mbean>
</server>



5. 启动JBOSS
cd JBOSS_HOME/bin
run.bat -c xpetstore

6. 指定xPetStore的应用服务器
Download and unzip the xpetstore3.1.x file.
Edit the file XPETSTORE_HOME/conf/as/appserver.properties and set the property app.server=jboss. You may want to review XPETSTORE_HOME/conf/as/jboss.properties to make sure that all the properties are properly set.

7. 指定数据库
Edit the file XPETSTORE_HOME/conf/db/database.properties and set the property db.name=mysql.
Edit the file XPETSTORE_HOME/conf/db/mysql.properties to configure the database.You must set the following properties:
db.driver
db.url
db.user
db.password
db.classpath
PS: Don't change the hibernate properties.

8. Build源代码
cd XPETSTORE_HOME/xpetstore-servlet
run build.bat

This command will :
Generate Java code in XPETSTORE_HOME/xpetstore-servlet/build/java
Generate the deployment descriptors at XPETSTORE_HOME/xpetstore- servlet/build/META-INF and XPETSTORE_HOME/xpetstore- servlet/build/WEB-INF
Compile the source code and build .jar, .war and .ear files at XPETSTORE_HOME/dist

经测试,事实上这样build是不足够的,在发布运行的过程中会出错。但考虑到官方文件是这样说的,并且这些的确是正确的主要步骤。之所以不能运行,完全是“意外”问题。因此,我们暂且跳过,到运行时再把步骤补全。

9. 发布应用
build.bat deploy

10. 初始化数据库
build.bat db

11. 运行应用
http://localhost:8080/xpetstore-servlet/


12. 意外错误排除
第一次build的过程会抛出xpetstore-servlet\build\META-INF not found的错误。此时,可以手工在相应目录建立META-INF文件夹。再运行build。

再发布时会抛出错误:Exception processing TLD at resource path /META-INF/taglib.tld。此时,可以手工将XPETSTORE_HOME\lib\main\com.opensymphony.module.webwork\webword.jar\META-INF中的taglib.tld 拷贝到XPETSTORE_HOME\xpetstore-servlet\web\META-INF目录下。(META-INF是手工建立的)。再编辑XPETSTORE_HOME\xpetstore-servlet\build.xml,在“WAR”栏加入以下语句把taglib.tld拷贝进war中。再运行build。
    		<!-- Added by thatway 2003-8-5 13:40-->
      		<metainf dir="${web.dir}/META-INF">
      			<include name="**/*" />
      		</metainf>
    		<!-- END -->


发布时还会提出错误,主要原因是Hibernate getConnection时不能通过JBOSS的安全验证。此时,要修改JBOSS_HOME/server/xpetstore/conf/login_config.xml和JBOSS_HOME/server/xpetstore/deploy/mydql_ds.xml。
先说login_config.xml。参照HsqlDbRealm段,添加如下代码。
    <application-policy name = "MysqlDbRealm">
       <authentication>
          <login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule"
             flag = "required">
             <module-option name = "principal"></module-option>
             <module-option name = "userName"></module-option>
             <module-option name = "password"></module-option>
             <module-option name = "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=xpetstoreDS</module-option>
          </login-module>
       </authentication>
    </application-policy>


再到mysql_ds.xml。修改security-domain值。
<security-domain>MysqlDbRealm</security-domain>


注意1:修改login-config.xml需要重启JBOSS才生效;修改mysql.xml则不必。
注意2:调试的过程中必然会多次重启JBOSS,如果xpetstore还没有发布成功的话,重启前请删除deploy目录下的xpetstore发布文件。


五. 结束语
至此,我们的痛苦就结束了。请访问 http://localhost:8080/xpetstore-servlet/ 看一看自己辛劳的成果。如果还运行失败,请联系我。

此番配置有两个目的,一是熟悉JBOSS,二是便于学习xpetstore源代码。第一个目标我们是达到了,但第二个目标现在才开始,所以让我们一起共勉,继续努力。


2003-8-11
   发表时间:2003-09-15  
这是以前写的JBOSS笔记,对初学者也许有一点用途的。
0 请登录后投票
   发表时间:2003-09-15  
robbin 写道
原创的吗?


yes,学习JBOSS时写的东东。多多指教。 
0 请登录后投票
   发表时间:2003-09-24  
我以前也配过xpetstore,据我的经验,你这里的jboss3.x是不是太粗略了?

比如我的是3.0.7,在这个版本,没有mysql-ds.xml;只有mysql-service.xml.其他版本我就不清楚了.

其他的讲的比较清楚.去xpetstore的主页,他有详细的安装文档,跟上文基本是一致的,不过是english.
0 请登录后投票
   发表时间:2003-09-24  
jd2bs 写道
我以前也配过xpetstore,据我的经验,你这里的jboss3.x是不是太粗略了?

比如我的是3.0.7,在这个版本,没有mysql-ds.xml;只有mysql-service.xml.其他版本我就不清楚了.

其他的讲的比较清楚.去xpetstore的主页,他有详细的安装文档,跟上文基本是一致的,不过是english.


Deploy下的配置文件的名字并不重要,只要XML里的内容一样就可以了。
Jboss才懒得管这些名字呢。
0 请登录后投票
   发表时间:2003-09-25  
JBoss的文档让我看得一愣一愣的
0 请登录后投票
   发表时间:2003-10-23  
http://www3.sympatico.ca/htchepannou/index.html
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics