繁体   English   中英

在JBOSS 7中部署JASIG CAS时错误的类路径

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM