[jboss] 项目上线总结

项目上线一波三折~

项目上线前提service 给系统服务部(简称系服),让准备jboss4.2+jdk1.5环境。准备的是jboss4.5+jdk1.5的环境

应用采用jdbc连接数据库,jboss只是负责启动应用即可。但系服说 东方钢铁要采用oracle-ds.xml 这种方式连接。幸好应用两种连接数据库方式(jndi、jdbc)都具备。在测试服务器上模拟了和正式服务器一样的环境。

1.修改了application-db.xml的数据库连接:

*************************************************************************************

<!-- jndi datasource -->
 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName" value="java:comp/env/appDS"/>
    </bean>
 <bean id="cleanDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName" value="java:comp/env/appDS"/>
    </bean>

*************************************************************************************

Jboss如何将应用与oracle-ds.xml中jndi配置一一对应:在/WEB-INF/下新建 jboss-web.xml,同web平级。

2.在jboss-web.xml中配置oracle-ds.xml中配置的jndi-name(jndi标识)

*************************************************************************************

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE jboss-web PUBLIC
 "-//JBoss//DTD Web Application 2.4//EN"
 "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
<jboss-web> 
    <resource-ref> 
        <res-ref-name>appDS</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
        <jndi-name>java:/test_portal</jndi-name> 
    </resource-ref> 
 <!--<context-root>/</context-root>  -->
</jboss-web> 

*************************************************************************************

3.web.xml中配置:

*************************************************************************************

<resource-ref>
  <res-ref-name>appDS</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

*************************************************************************************

4.oracle-ds.xml中配置JNDI连接信息:

*************************************************************************************

   <local-tx-datasource>
    <jndi-name>test_portal</jndi-name>
    <connection-url>jdbc:oracle:thin:@XX.XX.XX.XX:port:(train)</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>admin</user-name>
    <password>123</password>
    <connection-property name="char.encoding">GBK</connection-property>
    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
    <min-pool-size>2</min-pool-size>
    <max-pool-size>20</max-pool-size>
    <blocking-timeout-millis>5000</blocking-timeout-millis>
    <idle-timeout-minutes>5</idle-timeout-minutes>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
  </local-tx-datasource>

*************************************************************************************

配置的时候注意几个细节

jboss启动时要检查颜色区域,相同颜色区域要一一对应,不然启动会报异常。就因 appDS 和 appDs 大小写没注意折腾好久

还有jboss-web.xml中:

 <context-root>/</context-root>   作用:启动jboss后ie访问:http://localhost:8080/ 直接可以访问该应用。所以若ie地址栏得输入应用名的话这地方可以不写。ok解决成功!

*************************************************************************************

这里得谢谢 博客:http://blog.csdn.net/lovingprince/article/details/6577920 的提点。

*************************************************************************************

但系服上线时仍有错,心想环境一样。怎么我们这边测试环境可以他们那边的正式环境就不行了呢,就换了个数据源。

查看错误日志后报了个log4j问题。网上搜了下是log4j版本太低。通知系服换jboss  /server/default/lib jar包。

更换jar包后又有错,说:

jboss启动异常org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Failed to register driver for: oracle.jdbc.driver.OracleDriver; - nested throwable: (java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver)) 是oracle jdbc驱动和jdk版本不匹配导致。

后查看测试环境jdk。这才发现。测试环境是jboss-4.0.5+jdk1.6  oracle驱动采用的是 ojdbc6.jar

正式环境jboss-4.0.5+jdk1.5  oracle驱动采用的是 ojdbc6.jar ,所以将ojdbc14.jar包将ojdbc6.jar包替换掉。

oracle6.jar支持jdk1.6

oracle14.jar支持jdk1.4,jdk1.5。

**************************************************************************************

oracle驱动与jdk版本匹配 相关博客:http://tiantian0521.blog.163.com/blog/static/4172088320117294265766/

**************************************************************************************

jboss启动正常!

原文地址:https://www.cnblogs.com/kentyouyou/p/3090738.html