2011-05-25 111 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

相關問題