2011-05-25 151 views
1

我在我的web应用程序中实现了spring安全框架。 我的所有必需的弹簧安全jar文件在我的ear.This耳朵还包含我的web应用程序war文件。我创建了另一个jar文件驻留在耳朵本身,并具有所有与安全相关的代码(如自定义提供程序等),所以我可以在另一个web应用程序中使用它。这个安全jar文件也具有即时消息导入到我的web应用程序的spring security bean配置文件,但它给我例外,同时在jboss中部署ear.Follwoing是例外&我的代码详细信息...无法从URL位置导入Spring安全bean配置文件

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应用程序的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驻留在包含在耳并以我的web应用程序的MANIFEST.MF提到security.jar。

请指教我该怎么办我正在使用Spring 3.0.5发行版。 以下是我的耳朵文件结构:

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但仍其无法找到在耳边的lib目录中的Spring Security罐子。 当我复制了与mySecurity.jar相同级别的所有弹簧安全罐(意味着直接在ear而不是lib文件夹中)时,它会识别并正常工作。

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

+0

请问您可以发布security.jar的结构吗? META-INF在那个jar的根目录下? – 2011-05-25 09:43:57

+0

security.jar在同一级别(罐子的根目录)有com&META-INF – PushkarT 2011-05-25 10:05:25

+0

你将这部署到什么应用程序服务器? – 2011-05-25 11:27:06

回答

0

升级到JBOSS-5时,JBoss 4.2似乎在认识摆在耳罐问题。

0

更换

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

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

不,仍然不工作,同样的错误 – PushkarT 2011-05-25 10:18:59

+0

你在哪里保存'security.jar'? – 2011-05-25 10:22:13

+0

所有的罐子和战争都在项目的耳朵文件中 – PushkarT 2011-05-25 10:25:13

相关问题