2010年11月15日  blxt项目相关


最近项目要求把tomcat中开发的项目研究发布到一个更加强大的web服务器,我做了一些调查,选择了与tomcat的一条路线的jboss.原因主要是jboss的开源和免费,当然据说tomcat到jboss更加容易上手。这个过程对jboss有了一些了解和认识,当然现在只是发布和运行成功了。对于jboss还有很多东西也还是不明白,毕竟现在只是一个纯的web项目,没得j2ee的ejb,分布式的东西。现在就自己的学习和实践结果总结一下。

一、jboss服务器的安装:

在官网上下载,有很多版本。这里选择的是JBoss-5.1.0.GA(jdk1.6版本)。只需要解压就可以了,需要配置jdk,jboss的环境变量,网上有很多资源,这里不详细说了。

Jboss通常占用的端口是1098,1099,4444,4445,8080,8009,8083,8093这几个,

默认端口是8080:

在windows系统中:

1098、1099、4444、4445、8083端口在/jboss/server/default/conf/jboss-service.xml中

8080端口在/jboss-5.1.0.GA/server/default/deploy/jbossweb.sar中。

Xml代码

  1. <!-- A HTTP/1.1 Connector on port 8080 -->
  2. <Connector port="8080" address="${jboss.bind.address}"
  3. maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
  4. emptySessionPath="true"
  5. enableLookups="false" redirectPort="8443" acceptCount="100"
  6. connectionTimeout="20000" disableUploadTimeout="true"/>
   <!-- A HTTP/1.1 Connector on port 8080 --><Connector port="8080" address="${jboss.bind.address}"maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"emptySessionPath="true"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true"/>

把里面的8080改为80。JBOSS启动之后就可以用http://localhost/访问。

访问的ip(address):

JBOSS 4.2以上版本服务启动如果不加任何参数的话,只监听127.0.0.1,就是说只能用127.0.0.1或者localhost访问,用本机的对外地址 访问不了,同一网络内别的机子没法访问。除非你用参数-b ip地址 来绑定监听的地址才可以。
这和以前版本的JBOSS不一样,以前版本的不加任何参数是监听本机所有的IP地址,现在必须使用参数-b 0.0.0.0才可以监听全部地址。

======================================
1.
附,以下是具体解决方法:
在jboss-4.2.2.GA/bin目录下,新建start.bat文件,录入如下内容:
run.bat -b 0.0.0.0
保存即可。使用你新制作的start.bat文件启动服务之后就可以IP访问了。
======================================
2.
找到JBOSS_HOME的/server/default/deploy/jboss-web.deployer/server.xml文件,

找到

Xml代码

  1. <!-- A HTTP/1.1 Connector on address 8080 -->
  2. <Connector port="8080" address="${jboss.bind.address}"
  3. maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
  4. emptySessionPath="true"
  5. enableLookups="false" redirectPort="8443" acceptCount="100"
  6. connectionTimeout="20000" disableUploadTimeout="true"/>
<!-- A HTTP/1.1 Connector on address 8080 --><Connector port="8080" address="${jboss.bind.address}"maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"emptySessionPath="true"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true"/>

将其中的${jboss.bind.address}改为0.0.0.0

在myEclipse中的配置,如tomcat,在myEclipe/server中配置jboss 5x项目,jdk要配置上相应版本。

二、项目的环境:

服务器:
tomcat 6.0
JBoss-5.1.0.GA(jdk1.6版本):
删除D:/jboss-5.1.0.GA-jdk6/jboss-5.1.0.GA/server/default/deploy/blxt.war/WEB-INF/lib下面的:
xml-apis-1.0.b2.jar;xercesImpl-2.6.2.jar;xmlparserv2.jar;
javax.servlet.ServletException: OncePerRequestFilter just supports HTTP requests:
解决了,删除应用的lib下的几个jar包:servlet-api.jar相关的包 (geronimo-servlet_2.5_spec-1.2.jar jsp-api.jar)
clob类型长度大于最大值(一系列数据库问题):换用oracle驱动(Oracle_10g_10.1.0.2_JDBC_ojdbc14.jar),删除commonlib.jar(lib下的,不是client下面的)
发布的时候,将start.bat 放在/JBoss-5.1.0.GA/bin 目录下面。
java环境:
jdk6.0
数据库环境:
oracle 10g

三、实践相关

(1)直接用myEclipe6.0发布项目:

(这里代码没有什么变化,还是spring管理bean的生成和事务、连接池)

由于是在tomcat开发之后部署的时候迁移到jboss中的,所以会遇到很多问题。开始用myEclipst直接部署项目,就遇到了许多包的问题,通过网上查资料和自己的分析思考基本都得到解决。可以参看上面的项目环境,当然这有一定的局限性。思想是最重要的,遇到问题先要分析,可以上网去找,然后再分析。其中有oracle驱动的问题让我郁闷了很久,由于用到了大文本(clob),要用oracle新的驱动包,在tomcat中加了这个满足要求的包,但是到了jboss中又出现大文本的问题,又换了n多包都不行。这个时候看到了网上用jndi的配置,就转到了这个方向(参考下面的jndi)。结果了,折了一大圈又回来。spring的事务对jndi的支持不够(项目中用到了spring管理bean的生成和事务),如果强行换成那样,代码就要做很多修改,而我想的就是尽量不修改代码。快要崩溃了,结果偶然发现了,去掉那个oracle驱动也能运行。呵呵,沿着这个终于找到了,apache的commonlib.jar带有oracle的驱动包,在tomcat的中选择的是我加入的包,但是在jboss中就变成随机的了。把commonlib.jar干掉了,ok!当时很激动啊,这两天被折磨的哟。

(2)用jboss的jndi,初始化spring的dataSource.

由于oracle包的问题走到了这里,以前没有了解过jndi的东西,这里自己的研究也学了不少东西。jboss的可以配置多个数据源,这就为分布式和ejb提供了基础,当然也包括分布式事务(jta).

jboss的jndi配置:

配置步骤开始:将部署到TOMCAT中的工程文件夹(blxt)名称改为blxt.war;将部署到TOMCAT中的工程文件夹(blxt)名称改为blxt.war;

配置步骤1 . 由于jboss会自动查找server/default/deploy目录下的 **-ds.xml文件.并读取其中内容.来得到相应的DataSource,我的文件具体内容如下:

oracle-ds.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!--                                                                       -->
<!--  JBoss Server Configuration                                           -->
<!--                                                                       -->
<!-- ===================================================================== -->

<!-- See http://www.jboss.org/community/wiki/Multiple1PC for information about local-tx-datasource -->
<!-- $Id: oracle-ds.xml 88948 2009-05-15 14:09:08Z jesper.pedersen $ -->
<!-- ==================================================================== -->
<!--  Datasource config for Oracle originally from Steven Coy             -->
<!-- ==================================================================== -->
<datasources>
 <local-tx-datasource>
  <jndi-name>blxtORCLDS</jndi-name>
  <use-java-context>false</use-java-context>
  <connection-url>jdbc:oracle:thin:@192.168.10.130:1521:oradb</connection-url>
  <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
  <user-name>blxt</user-name>
  <password>blxt</password>
  <min-pool-size>50</min-pool-size>
  <max-pool-size>200</max-pool-size>
  <blocking-timeout-millis>5000</blocking-timeout-millis>
  <idle-timeout-minutes>2</idle-timeout-minutes>
  <metadata>
   <type-mapping>Oracle10g</type-mapping>
  </metadata>
 </local-tx-datasource>
 <!-- 无用,可以配置多种多个 -->
 <local-tx-datasource>
  <jndi-name>Z</jndi-name>
  <use-java-context>false</use-java-context>
  <connection-url>jdbc:oracle:thin:@10.1.1.1:1521:z</connection-url>
  <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
  <user-name>z</user-name>
  <password>z</password>
  <min-pool-size>50</min-pool-size>
  <max-pool-size>200</max-pool-size>
  <blocking-timeout-millis>5000</blocking-timeout-millis>
  <idle-timeout-minutes>2</idle-timeout-minutes>
  <metadata>
   <type-mapping>Oracle9i</type-mapping>
  </metadata>
 </local-tx-datasource>
</datasources>

配置步骤2 . 在工程/server/default/blxt.war中web.xml文件所在位置增加jboss-web.xml文件,内容如下:

jboss-web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <resource-ref>
        <res-ref-name>blxtORCLDS</res-ref-name>
        <jndi-name>blxtORCLDS</jndi-name>
    </resource-ref>
 <!-- 未用的 -->
 <resource-ref>
        <res-ref-name>orclZ</res-ref-name>
        <jndi-name>Z</jndi-name>
    </resource-ref>
</jboss-web>
配置步骤3 . web.xml下面配置:

blxt的web-info:web.xml文件中添加:

<!-- jboss部署需要 -->
 <resource-ref id="blxtORCLDS">
   <res-ref-name>blxtORCLDS</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
  </resource-ref>

配置步骤4 . 在spring中得到数据源:

<!-- jboss用  -->
 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiName">
   <value>blxtORCLDS</value>
   </property>
  </bean>

到此配置完成,但是由于spring对jndi事务的支持不足,还有这种配置多用于分布式事务,这种方式在这里(纯的、代码已经确定的项目)显得不合理。

这里暂时选择了第一种发布方式。事务和连接池都交给项目管理,在spring中配置。

暂时总结如上,当然以后的学习过程也就是我的完善过程。……

2010年11月15日  blxt项目相关


……

参考主要文章:

jboss与tomcat使用经验:http://www.77169.com/classical/HTML/39445.html

Jboss与tomcat区别:http://tech.sina.com.cn/h/2008-09-19/1208811039.shtml

JBoss学习和应用相关推荐

  1. jboss学习 - vfs---转载

    jboss的VFS是为了解决什么问题,他为什么有用呢 在jboss中有很多类似的资源操作的代码都分散在程序的各个地方,大多数情况下代码首先确定操作的资源的类型,比如是文件或者是文件夹,通过URL加载的 ...

  2. 大学学了java可以做点什么_学习Java的,大学毕业一般从事些什么工作?

    展开全部 我这是拷贝的,62616964757a686964616fe59b9ee7ad9431333332643361不过也就差不多了,说实话,java的东西太多了.还是要到工作的时候慢慢用的,学好 ...

  3. Java的学习——培训或自学

    JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢 ...

  4. java学习顺序(学习路线图)

    给你参考参考 Java学习路线图 作者:马士兵 1:J2SE 面向对象-封装.继承.多态 内存的分析 递归 集合类.泛型.自动打包与解包.Annotation IO 多线程.线程同步 TCP/UDP ...

  5. 【MLDN_李兴华】JAVA学习攻略+新书导读

    <Java开发实战经典>--学习攻略          首先需要为读者说明的是,<Java开发实战经典>,如图1所示,不只是一本纯粹讲解基础的书,里面更多的内容是为JAVA E ...

  6. java学习之路---java学习的方法和java学习路线

    转载于: http://blog.csdn.net/zhangerqing 前段时间逛论坛,总会有很多新手很迷茫,问到:到底该怎么学好Java,这个问题很重要,尤其对于像我们这样大多数都是靠自学的人来 ...

  7. 20100928_Dawning_Jboss学习笔记

    Jboss学习笔记 运行步骤: 将项目src那一块打包成为HelloWorld.jar (使用eclipse中自带的打包工具)然后把该文件拷贝到jboss安装目录/server/default/dep ...

  8. [原创 - 尚学堂科技 - 马士兵老师]

    JAVA自学之路 一:学会选择 [转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_1.html] 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多 ...

  9. java自学路线图_JAVA自学路线图

    首先要学JavaSE,与此同时,和JavaSE的学习同步,建议大家研究一下数据结构与算法. 在这儿之后,你可以选择向J2ME.或者Java GUI.Socket编程等方向努力,但是通过第一篇的办法,你 ...

最新文章

  1. 前后端分离的探索(二)
  2. 万字长文总结机器学习的模型评估与调参 | 附代码下载
  3. spring核心:bean工厂的装配 6
  4. .NET 时间格式 ----------摘自MSDN
  5. 用ghost备份和还原Linux系统
  6. OpenCV-绘制旋转矩形
  7. openwrt 自动签到插件-食用指南
  8. YDOOK: USB 转 TTL 串口模块接线图
  9. 数据结构—顺序表详解
  10. Appium安装手册详解
  11. 投票系统(投票问题可多选、带柱状图)
  12. 从零开始学习区块链技术
  13. html5 mp4转换ogv格式,如何将mp4视频转换成ogv高清视频呢
  14. 给我疯狂内卷!GitHub再现星标86K面试手册,37K!妥妥的
  15. 去除Android状态栏的广告推送
  16. ASBR(自治系统边界路由器)
  17. 动态申请权限---通讯录 及获取通讯录列表
  18. 2019年TI杯 简易电路特性测试仪 制作过程(9)——实际测试效果 20/05/24
  19. 在服务器端运行JavaScript文件(一)
  20. CCS 软件仿真和硬件仿真结果不同解决办法

热门文章

  1. PrestaShop支付接口-网银在线支付,在线支付收款,外贸收款
  2. xml 压缩_研究最新的XML压缩技术
  3. Xilinx ZYNQ开发板资料共享
  4. img服务器上的图片不显示不出来,img标签使用绝对路径无法显示图片
  5. 【Audio】Unity音频模块:加载、转换、剪切、混音、合并
  6. OJ每日一练——边防哨口令
  7. JS 高级(七)ES6解构、class、promise
  8. 在线帮助中心,轻松解决售后服务问题
  9. 英语-专业论文写作的八大特征
  10. 地面分割:Fast Segmentation of 3D Point Clouds for Ground Vehicles