原来应用在WAS7.0下,移植到JBOSS eap5.1.2下后,遇到了一些问题,特此记录:java
一、数据源配置web
在was中,datasource中获取数据源名称时,直接写was中配置的数据源名称便可。而在jboss下,jndi的名称须要以java:+数据源名称开始。was下能够经过console去配置数据源,jboss中,将数据库驱动复制到%JBOSS_HOME%/server/default/lib/下,而后到JBoss的文档中寻找到数据源的配置模板,这个配置模板在docs/examples/jca目录下,在这目录下能够看到有各类数据库的配置模板,找到oracle的配置模板,oracle-ds.xml,将其复制到%JBOSS_HOME%/server/default/deploy/ 下。而后将数据库链接串、用户名、密码等写正确。数据库
数据源发布成功以后,咱们就能够进入JBoss的管理控制台,http://localhost:8080/jmx-console/, 找到jboss.jca这个栏目,会找到不少name=itcastDS.service=....的东西,当这个数据源在jboss.jca这个栏目列出来的时候,就证实咱们的发布是成功的。oracle
二、web.xml配置jvm
在was7下,web.xml顶部必须有一个DOCTYPE声明,这个在jboss中不能够有,不然没法启动。spa
三、JVM配置server
jvm的默认的permsize只有4M,当应用中jar包和类比较多时,会出现OutOfMemory:PermSize的异常。 此时,须要在%JBOSS_HOME%/bin/run.conf下,最顶部添加以下jvm参数配置:xml
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m文档
四、出现head size异常it
能够经过指定最大堆大小来解决此问题 即set JAVA_OPTS=-Xmx1024m
四、jboss-web.xml
默认状况下,应用中的某些jar包也jboss中的jar包冲突。此时在web-inf下添加一个jboss-web.xml,便可正常启动,内容以下:
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"> <jboss-web> <class-loading java2ClassLoadingCompliance='true'> <loader-repository> com.example:archive=unique-archive-name <loader-repository-config> java2ParentDelegaton=true </loader-repository-config> </loader-repository> </class-loading> </jboss-web>