簡體   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