1

現在、$CATALINA_HOME/lib ディレクトリにシステム/DB 認証を処理するライブラリがいくつかあります。これらのファイルの 1 つ foo.jar には、拡張するクラスが含まれています。

org.apache.catalina.realm.DataSourceRealm

認証に使用されています。このファイルは、server.xml に保存しているいくつかのプロパティにアクセスする必要があります。ただし、アクセスしようとするとエラーが発生します。コードのセグメントは次のとおりです

try{
Context ctx = new InitialContext();
Context envCtx = (Context)ctx.lookup("java:comp/env");

String property = (String)envCtx.lookup("property");

} catch(Exception ex) {} 

何か案は?

4

1 に答える 1

1

また、アプリのcontext.xmlに関連するResourceLinkが必要です。たとえば、Webアプリの名前がfooの場合、次のように呼び出されるファイルが必要ですconf/Catalina/localhost/foo.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE Context>

<Context antiJARLocking="true">
    <ResourceLink name="property" 
        type="classname" 
        global="propertyNameInGlobalNamingResources" />  
    ...
</Context>

これらのリンクをwarファイルに含めるMETA-INF/context.xmlと、tomcatはconf/Catalina/localhost/foo.xml、アプリが最初にデプロイされたときにそれをコピーします(ただし、その後は変更を加えて、カスタマイズを壊さずに再度デプロイできるようにするためです。 )。

于 2013-02-19T20:30:02.133 に答える