![](/img/trans.png)
[英]jasig CAS: reference to RegistredService in AuthHandler Class
[英]Wrong class path while deploying JASIG CAS in JBOSS 7
我正在尝试在JBOSS 7上部署CAS Web应用程序。包名称为cas-server-webapp-3.4.11.war
。
我在安装过程中遇到以下错误:
09:37:06,951 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/cas-server-webapp-3.4.11]] (MSC service thread 1-5)
Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener: java.lang.IllegalArgumentException: Invalid 'log4jConfigLocation' parameter: class path resource [log4j.xml] cannot be resolved to absolute file path because it does not reside in the file system: vfs:/D:/Programming/jboss7/bin/content/cas-server-webapp-3.4.11.war/WEB-INF/classes/log4j.xml
部署包位于D:\\Programming\\jboss7\\standalone\\deployments\\cas-server-webapp-3.4.11.war
,但显然JBOSS尝试解析D:/Programming/jboss7/bin/content/cas-server-webapp-3.4.11.war
路径D:/Programming/jboss7/bin/content/cas-server-webapp-3.4.11.war
。
我怎么能改变这条道路?
对于CAS 1.5,log4j配置在WEB-INF / cas.properties文件中定义,您可以在其中定义位置。
我使用了这个配置:
log4j.config.location=${jboss.server.base.dir}/deployments/cas-server-webapp.war/WEB-INF/classes/log4j.xml
但是,当应用程序服务器在部署期间没有解压缩时,它无论如何都不起作用,因为该文件不在文件系统上。 因此,最简单的方法是通过删除src / main / webapp / WEB-INF / spring-configuration / log4jConfiguration.xml文件来禁用此bean的初始化。
此问题也与此主题相关。
解决方案如下:
在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">
<class>org.jasig.cas.services.RegisteredServiceImpl</class>
<class>org.jasig.cas.ticket.TicketGrantingTicketImpl</class>
<class>org.jasig.cas.ticket.ServiceTicketImpl</class>
<class>org.jasig.cas.ticket.registry.support.JpaLockingStrategy$Lock</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
</properties>
</persistence-unit>
在web.xml而不是:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.xml</param-value>
</context-param>
放
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF\classes\log4j.xml</param-value>
</context-param>
希望这有助于节省他人的时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.