java - 无法从 URL 位置导入 Spring 安全 bean 配置文件

标签 java spring spring-security

我正在我的网络应用程序中实现 Spring 安全框架。 我的耳朵里有所有必需的 spring 安全 jar 文件。这个耳朵还包含我的网络应用程序 war 文件。我创建了另一个 jar 文件,该文件驻留在耳朵本身中,并且包含与安全性相关的所有代码(如自定义提供程序等),以便我可以在 future 的另一个 Web 应用程序中使用它。这个安全 jar 文件还具有 spring security bean 配置文件,我将其导入到我的 Web 应用程序中,但在 jboss 中部署 Ear 时它给了我异常(exception)情况。Follwoing 是异常(exception)情况和我的代码详细信息...

Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOException
parsing XML document from class path resource [META-INF/authbeans.xml]; nested
exception is java.io.FileNotFoundException: class path resource [META-
INF/authbeans.xml] cannot be opened because it does not exist at   

org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions  
(XmlBeanDefinitionReader.java:341)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions
(XmlBeanDefinitionReader.java:302)
at   
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.
loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.
loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.
importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:186)
... 154 more 

下面是我的网络应用程序的 web.xml 条目

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
   /WEB-INF/applicationContext.xml          
</param-value>
</context-param>

applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
   xmlns:sec="http://www.springframework.org/schema/security" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
   http://www.springframework.org/schema/security   
   http://www.springframework.org/schema/security/spring-security-3.0.xsd">  

   <import resource="classpath:META-INF/authbeans.xml" />
</beans>

此 authbeans.xml 驻留在 security.jar 中,它包含在 Ear 中,并且也在我的 Web 应用程序的 MANIFEST.MF 中提到。

请建议我该怎么做,我正在使用 Spring 3.0.5 版本。 以下是我的ear文件结构:

    MyEar
    |-- lib\ (contains all spring security jar files)
    |    
    |-- mySecurity.jar (contains all security related custom code also authbeans.xml)
    |
    |-- myWar
           |-- META-INF/MANIFEST.MF (entries for spring security jars & mySecurity.jar)
           |
           |-- WEB-INF
                   |-- applicationContext.xml (authbeans.xml included)
                   |-- lib\ (local jar files)

我在 JBOSS 5.0.1 上尝试过,现在应用程序能够找到 authbeans.xml,但仍然无法在 Ear 的 lib 目录中找到 spring security jar。 当我将所有 spring security jar 复制到与 mySecurity.jar 相同的级别(意味着直接在 Ear 中而不是在 lib 文件夹中)时,它可以识别并正常工作。

但我想将所有第三方 jar 保留在 Ear 的 lib 目录中。这是 jboss 特定问题吗???

最佳答案

替换

 <import resource="classpath:META-INF/authbeans.xml" />

 <import resource="classpath:/META-INF/authbeans.xml" />

关于java - 无法从 URL 位置导入 Spring 安全 bean 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122358/

相关文章:

java - 为什么一个<Integer> ArrayList加了一个字符串变量就编译成功了?

java - 未使用 goDaddy 证书验证 HTTPS 主机名

java - Spring集成过滤器有异常

java - 如何在 Hibernate 中使用 DAO 方法从数据库中检索、更新、删除数据

grails - 外部链接中的用户无效

grails - Null springSecurityService 导致 encodePassword 在 Grails 2.0.1 中失败

Java BigInteger,切断最后一位数字

java - QuickBlox Android 无响应

java - ObjectMapper 读取值

authentication - Spring 启动 ldap 安全