最近jboss7的发布,可以说给jboss的爱好者很多的惊喜,在7版本中增加了很多之前版本没有的功能,同时7的结构目录也和以往的版本有很大的区别,不过今天的主题不是主要讨论jboss版本之间的差异,而是在jboss7中怎么集成CAS3,并部署成功。
大家都知道,CAS在tomcat中的部署非常简单,同时在网上也有很多的资料说明,想了解的朋友可以通过网上搜索得到答案,而在jboss7.1.1中呢?就需要修改一些配置了,下面一步步教大家怎么做:
第一:准备:这里用到的CAS版本为3.5.1服务端,jboss7.1.1-final。
第二:用jdk的keytool生成证书,具体的生成方法可以网上找,比如说生成的key为:t1、证书为t1.crt,然后把这两个文件拷贝到%JBOSS_HOME%\standalone\configuration的文件夹下。
第三:找到standalone.xml文件中如下的这段代码
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
并在后面加上:<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl name="https" password="changeit" certificate-key-file="../standalone/configuration/t1"/>
</connector>更改后的完整代码为:
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl name="https" password="changeit" certificate-key-file="../standalone/configuration/t1"/>
</connector>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
</subsystem>
第四:找到CAS3.5.1中的modules中的cas-server-uber-webapp-3.5.1.war并把它改名为cas.war,将其拷贝到%JBOSS_HOME%\standalone\deployments目录,同时,用解压软件打开它,找到WEB-INF下的cas.properties
第五:打开cas.properties文件,找到log4j这段,应该是在文件的末尾,然后找到如下的地方:
##
# Log4j
# Default sourced from WEB-INF/spring-configuration/log4jConfiguration.xml:
#
# It is often time helpful to externalize log4j.xml to a system path to preserve settings between upgrades.
# e.g. log4j.config.location=/etc/cas/log4j.xml
# log4j.config.location=classpath:log4j.xml
#
# log4j refresh interval in millis
# log4j.refresh.interval=60000
然后更改为:
##
# Log4j
# Default sourced from WEB-INF/spring-configuration/log4jConfiguration.xml:
#
# It is often time helpful to externalize log4j.xml to a system path to preserve settings between upgrades.
# e.g. log4j.config.location=/etc/cas/log4j.xml
# log4j.config.location=classpath:log4j.xml
#
# log4j refresh interval in millis
# log4j.refresh.interval=60000
log4j.config.location=${jboss.server.base.dir}/configuration/cas_log4j/log4j.xml
log4j.refresh.interval=60000
如果不注明log4j.xml的位置的话,会报一个恶心的错误,这里log4j我把它放到了configuration/cas_log4j文件夹下。然后就是配置一些数据源啊,认证方式啊之类的,不过这些是额外的,和在tomcat中的配置是一样的。
第六:如果现在就启动jboss7的话,看看什么效果,是不是报错啦,是的,因为jboss没找到cas中定义的hibernate.dialect,所以我们需要配置一下这个hibernate.dialect
找到cas.war\WEB-INF\classes\META-INF下的persistence.xml文件,然后修改成如下:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="CasPersistence" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
</properties>
</persistence-unit>
</persistence>
明确指明dialect,然后保存。
到此,配置完成,启动jboss7,看看效果,没有报错,配置成功,接下来就可以登录cas的认证登录页面啦。