JBoss环境下部署OpenJWeb的过程
JBOSS4.2.2GA环境下部署OpenJWeb的步骤
- 配置JAVA_OPTS参数
这一步骤很重要,因为需要指定MaxPermSize,因为OpenJWeb有很多开源Jar包,不指定此参数为造成PermGenSpace内存溢出。
配置过程:
编辑jboss-4.2.2.GA\bin\run.bat ,默认配置为
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m
修改为:
set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1200m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
上面的参数是针对2G物理内存的机器的配置,建议使用openjweb的主机至少为2G内存。
- 数据库驱动Jar包
将数据库驱动的jar包复制到
jboss-4.2.2.GA\server\default\lib目录下。
对于oracle为ojdbc14.jar
对于sqlserver2005,2008为sqljdbc.jar (应该也支持sqlserver2000)
对于mysql为mysql-connector-java-3.1.12-bin.jar
- 配置JBOSS数据源
在jboss-4.2.2.GA\server\default\deploy目录下建立oracle-ds.xml数据源,对于jboss数据源配置文件应以-ds.xml结尾。下面是oracle-ds.xml的内容:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<!--see http://improve.iteye.com/blog/1003348-->
<local-tx-datasource>
<!--<jndi-name>jdbc/oracle</jndi-name>-->
<jndi-name>oracleDS</jndi-name>
<!--<use-java-context>false</use-java-context>-->
<connection-url>jdbc:oracle:thin:@192.168.1.102:1521:ERP</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>erp</user-name>
<password>erp</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>5</idle-timeout-minutes>
<metadata>
<type-mapping>Oracle</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
如果是mysql数据库,可以参考:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>oracleDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3333/erp?useUnicode=true&characterEncoding=UTF8&jdbcCompliantTruncation=false</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>mysql</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<min-pool-size>200</min-pool-size>
<max-pool-size>200</max-pool-size>
<idle-timeout-minutes>5</idle-timeout-minutes>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
- 在OpenJWeb中配置JBOSS的数据源JNDI
因为是在jboss容器中用war包的形式部署openjweb,所以需要配置JBOSS JNDI与tomcat resouce映射关系。
在D:\project\openjweb\webapps\web.xml的</web-app>之上增加以下内容:
<resource-ref>
<description>Oracle DataSource</description>
<res-ref-name>jdbc/oracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
另外在此目录下建立jboss-web.xml文件,内容如下,其中oracleDS与JBoss的oracle-ds.xml中的数据源明名一致。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web
PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
<jboss-web>
<resource-ref>
<res-ref-name>jdbc/oracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/oracleDS</jndi-name>
</resource-ref>
</jboss-web>
五、制作WAR包
Openjweb以portal作为web Context名字,所以请打包为portal.war。
打包方式:在D:\project\openjweb\webapps目录下进入cmd模式,
运行jar -cvf portal.war . 命令。
将生成的war文件复制到jboss-4.2.2.GA\server\default\deploy目录下。
六、配置JBOSS日志
jboss-4.2.2.GA\server\default\conf目录下,打开jboss-log4j.xml,删除<appender-ref ref="CONSOLE"/>一行,可能删掉这行才能在server.log文件中记录部署信息,以便查看部署异常。日志文件为jboss-4.2.2.GA\server\default\log\server.log
七、配置jboss web端口
jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer目录下的server.xml,<Connector port="8080" ,改为自己期望的web端口。例如8088
八、启动JBOSS
启动文件为jboss-4.2.2.GA\bin\run.bat,war包自动部署,默认会部署到jboss-4.2.2.GA\server\default\tmp目录。不过对于4.2.2 GA版本,使用这种方式启动只能访问localhost,可以使用带命令行参数的方式启动,命令为:
run –b 0.0.0.0
也可以打开jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer目录的server.xml文件,将所有的address="${jboss.bind.address}"改为address="0.0.0.0"
jboss启动以后,访问 http://localhost:8088/portal/login.jsp 用admin 123456登入系统。
九、域名访问
如果需要通过域名访问,需要配置虚拟机。下面的配置方式也适用于花生壳动态域名。
修改上文提到的jboss-web.xml(如果已部署war,可直接打开对应的部署目录下的文件进行修改)。,下面是修改后的配置,增加了openjweb2.gicp.net域名,当访问 http://openjweb2.gicp.net/login.jsp时,可访问部署war包的登录页面:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web
PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
<jboss-web>
<resource-ref>
<res-ref-name>jdbc/oracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/oracleDS</jndi-name>
</resource-ref>
<context-root>/</context-root>
<virtual-host>openjweb2.gicp.net</virtual-host>
</jboss-web>