簡體   English   中英

在啟動時替換web.xml變量

[英]Substitute web.xml variables at startup

我有一個web.xml文件,它在context-param和過濾器的init-param中構造變量。 我想用應用程序啟動時從屬性文件中獲取的值替換此變量。

我的web.xml是這樣的:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

<display-name>APP NAME</display-name>
<description>
    App description
</description>
<context-param>
    <param-name>my-param-name</param-name>
    <param-value>${my-param-name}</param-value>
</context-param>
<filter>
    <filter-name>Authentication Filter</filter-name>
    <filter-class>my.app.Filter</filter-class>
    <init-param>
        <param-name>filter-var-name</param-name>
        <param-value>${filter-var-value}</param-value>
    </init-param>
</filter>
...
</web-app>

和web.properties

my-param-name=${PARAM_VALUE_TO_BE_SETTED_BY_TOOL}
filter-var-value=${FILTER_VALUE_TO_BE_SETTED_BY_TOOL}

以下是部署的工作原理:

1)部署工具讀取給定的屬性文件,並用PROD或Dev值(在該工具中設置的值)替換變量,並將文件推送到JBoss下的應用程序模塊;

2)在JBoss上啟動應用程序的部署。 我希望在啟動時將web.xml變量替換為屬性文件值。

提前致謝。

我們創建了一個包裝過濾器,它擴展了Servlet過濾器以將值設置為web.xml過濾器變量。 這些值取自DEV和PROD環境的外部屬性文件。

web.xml中:

...
<filter>
    <filter-name>CAS Authentication Filter</filter-name>
    <filter-class>my.package.WrappedFilter</filter-class>
    <init-param>
        <param-name>key</param-name>
        <param-value>wrappedCasFilter</param-value>
    </init-param>
    <init-param>
        <param-name>class</param-name>
        <param-value>org.jasig.cas.client.authentication.AuthenticationFilter</param-value>
    </init-param>
</filter>
...

屬性文件:

wrappedCasFilter.init.casServerLoginUrl = https://URL

我很難過,我無法向你展示WrappedFilter的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM