2013-10-07 26 views
0

我正在用Netbeans和maven開發一個java web應用程序。Tomcat找不到我領域的依賴關係

我實現了我自己的Realm擴展類org.apache.catalina.realm.DataSourceRealm。

所以,我必須引起拋出java.lang.ClassNotFoundException context.xml中出現的語法錯誤:com.company.authentication.MyRealm

我用我的王國建立JAR,並把在Tomcat中lib文件夾固定的這。

有沒有辦法自動做到這一點?也就是說,讓Tomcat在部署中識別我的領域,或者讓「Tomcat類加載器」僅通過WAR文件(或maven)加載我的領域。

我的境界

public class MyRealm extends DataSourceRealm{ 
    @Override 
    public Principal authenticate(String username, String credentials) { 

     ... 

     //Applying encryption 
     credentials = MyEncrypt.encrypt(credentials); 

     ... 

     return authenticate(dbConnection, username, credentials); 
    } 
} 

我context.xml文件

<Resource auth="Container" driverClassName="org.postgresql.Driver" maxActive="10" maxIdle="3" name="jdbc/my_db" password="123456" type="javax.sql.DataSource" url="jdbc:postgresql://localhost:5432/app_web_login" username="postgres" />  
<Realm className="com.company.authentication.MyRealm" dataSourceName="jdbc/my_db" roleNameCol="role_name" userCredCol="user_pass" userNameCol="user_name" userRoleTable="user_roles" userTable="users" localDataSource="true"/> 

我pom.xml文件

<dependencies> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>6.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.tomcat</groupId> 
      <artifactId>tomcat-catalina</artifactId> 
      <version>7.0.42</version> 
      <scope>provided</scope> 
     </dependency> 
     ... 
    </dependencies> 

回答

0

目前的部分,有沒有辦法告訴Tomcat來請在Web應用程序中查找您的Realm實現。