在websphere应用服务器中通过spring加载资源

发布于 2025-01-06 18:32:23 字数 849 浏览 3 评论 0原文

我有一个在 websphere 应用程序服务器 8 (WAS) 上运行的 Web 应用程序。在 web.xml 中,我有:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:by/example/**/*-ctx.xml</param-value>
</context-param>

然后,当我在 WAS 上部署我的应用程序时 - 它通过带有前缀“wsjar:file...”的 url 加载我的所有 ctx 文件,这很好。

但是,当在我的工作应用程序中时,我尝试使用应用程序上下文的对象来加载资源,如下所示:

applicationContext.getResource("classpath*:by/example/**/I-*.sql").getUrl()

它会抛出 url 不正确的异常 - 但如果我添加前缀“wsjar:”,如下所示:

 applicationContext.getResource("wsjar:classpath*:by/example/**/I-*.sql").getUrl()

它运行良好。但我需要创建通用系统来加载不同应用程序服务器和 servlet 容器上的资源。在 tomcat 中不需要前缀。

如何以与 ContextLoader 相同的方式在 WAS 上的应用程序中加载资源,通过 ContextLoaderListener 加载我的 ctx 文件而不带前缀“wsjar:”?

I have a web application running on websphere application server 8 (WAS). In web.xml i have:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:by/example/**/*-ctx.xml</param-value>
</context-param>

Then when i deploy my app on WAS - It loads all my ctx files by urls with prefix "wsjar:file..." that is good.

But when in my working app i try to use object of my application context to load resources like this:

applicationContext.getResource("classpath*:by/example/**/I-*.sql").getUrl()

It's throws exception that url incorrect - but if i add preffix "wsjar:", like this:

 applicationContext.getResource("wsjar:classpath*:by/example/**/I-*.sql").getUrl()

It works well. But i need to create universal system to load resources on different app servers, and servlets containers. In tomcat prefix not needed.

How can i load resources in my app on WAS in the same way as ContextLoader via ContextLoaderListener load my ctx files without preffix "wsjar:"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

原来是傀儡 2025-01-13 18:32:23

当我使用完整的包名称时,我对 IBM WAS 没有任何问题。像这样:

            classpath:com/tdp/abc/facilitador/boost/config/reglaBoostWS-support.xml         

我没有尝试使用星号来指向多个文件。也许列出所有个人文件对您有用。

When i use full package names i have no problems with IBM WAS. Like this:

            classpath:com/tdp/abc/facilitador/boost/config/reglaBoostWS-support.xml         

I didn't try using asteriks for pointing multiple files. Maybe listing all individuals files can work for you.

孤千羽 2025-01-13 18:32:23

尝试这样的事情。

        ApplicationContext appContext = 
       new ClassPathXmlApplicationContext(new String[] {"If-you-have-any.xml"});

    Resource resource = 
       appContext.getResource("classpath*:by/example/**/I-*.sql");

Try something like this.

        ApplicationContext appContext = 
       new ClassPathXmlApplicationContext(new String[] {"If-you-have-any.xml"});

    Resource resource = 
       appContext.getResource("classpath*:by/example/**/I-*.sql");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文