簡體   English   中英

無法從外部jar文件加載spring配置xml

[英]Cannot load spring configuration xml from external jar file

我已經嘗試過在stackoverflow上編寫的解決方案,但是沒有一個解決了我的問題,可能對我來說不一樣。

我有兩個模塊,“電子郵件服務”(jar)和“電子郵件服務Web”(war)包裝模塊。 我使用maven,“ email-service-web”導入“ email-service” jar文件。 這按預期工作。

我在“ email-service-web” WEB-INF文件夾中的web.xml如下所示:

<servlet>
    <servlet-name>springServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:/META-INF/spring/web-application-config.xml
        </param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

web-application-config.xml如下所示:

<import resource="classpath*:applicationContext-email-service-bootstrap.xml"/>
<import resource="classpath*:applicationContext-email-service-environment.xml"/>
<import resource="classpath*:applicationContext-email-service-process.xml"/>
<import resource="classpath*:applicationContext-email-service-integration.xml"/>

<context:component-scan base-package="com.company.emailservice"/>

IntelliJ表示,可以通過不將其顯示為紅色來找到applicationContext- *文件。 我已經確認它們存在於email-service.jar文件中,並且jar文件存在於展開的email-service-web.war文件的lib文件夾中。 另外,我嘗試了各種路徑建議,例如classpath *:** / application * .xml等,什么也沒有發生。 我在集成中有一個HTTP入站通道適配器,jetty找不到它,並給出了404。

春天部分還沒有啟動,我應該從中獲取日志垃圾郵件,但我沒有。 如果我將“電子郵件服務”轉換為戰爭打包的項目,然后將webapp結構移到那里,一切正常。

我究竟做錯了什么?

編輯:

建議不要涉及WEB-INF,因此我已經移動文件並更新了我的問題。

另外,我的項目結構如下:

[email-service]
`--src
   `--main
      `--src
         |--java (classes)
         `--resources
            |--applicationContext-email-service-bootstrap.xml
            |--applicationContext-email-service-environment.xml
            |--applicationContext-email-service-process.xml
            `--applicationContext-email-service-integration.xml

[email-service-web]
`--src
   `--main
      |--src
      |  `--resources
      |     `--META-INF
      |        `--spring
      |           `--web-application-config.xml
      `--webapp
         `--WEB-INF
            `--web.xml

因此,正如M. Deinum所述, WEB-INF文件夾不在類路徑中,這最終是我的問題。

花了一段時間找出原因,因為在最初的幾次嘗試中,HTTP集成端點(HTTP入站通道適配器)未正確響應,但是第3和第4個請求卻按預期進行了響應。

web-application-config.xml放在resources文件夾中確實解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM