Неправильный путь к классу при развертывании JASIG CAS в JBOSS 7 - PullRequest
1 голос
/ 21 марта 2012

Я пытаюсь развернуть веб-приложение CAS на JBOSS 7. Имя пакета: 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.

Как я могу изменить этот путь?

Ответы [ 2 ]

2 голосов
/ 15 августа 2012

Для 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.

Также эта проблема относится к этой теме .

1 голос
/ 23 марта 2012

Решение заключается в следующем:

В файл 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>

put

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>WEB-INF\classes\log4j.xml</param-value>
</context-param>

Надеюсь, это поможет и сэкономит время другим.

...