WebSphere尝试从Internet加载Spring相关的模式

时间:2010-07-21 21:38:19

标签: java spring websphere

我在j2ee应用程序中运行spring时遇到了一些问题。

简介:

我使用的是WebSphere 6.1(我不知道它是特定于websphere的还是更普遍的问题)

工件:

  1. web应用程序(war)WEB-INF / lib文件夹中的maven发布所有需要的spring依赖项。
  2. 然后将
  3. war打包在耳中并在应用程序服务器上部署。
  4. 在应用程序中有弹簧配置文件或弹簧引用。只是WEB-INF/lib内的jar文件,而不是关于spring的文件。

    部署应用程序并开始加载应用程序服务器时,开始寻找一些spring xml架构:

    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tool/spring-tool-2.0.xsd http://www.springframework.org/schema/tool/spring-tool-2.5.xsd http://www.springframework.org/schema/tool/spring-tool-3.0.xsd

    它希望通过上面指定的url从互联网上获取它们。

    问题:

    如何强制应用程序服务器使用本地(在Web存档中)的模式? 或者可能完全禁用此检查?

    另一方面,当应用程序启动时,所有工作都完美无缺(后来我尝试使用IoC)。

    应用程序服务器没有Internet连接,所有尝试解析此架构都会导致等待连接超时。

    我尝试的是什么:

    将包含url映射的spring.schemas放入位于web存档中的模式到META-INF文件夹中。所有这些文件(spring.schemas和xml模式)都可以通过ClassLoader访问(选中)。

    非常感谢任何帮助。

    /me [stupid j2ee developer]

    更新1:

    以下是我从websphere日志文件中获取的确切消息:

    [22.07.10 15:45:58:626 MSD] 00000043 XMLParser     W   java.net.SocketException occurs during processing http://www.springframework.org/schema/tool/spring-tool-2.0.xsd: Operation timed out: connect:could be due to invalid address
    [22.07.10 15:46:20:112 MSD] 00000043 XMLParser     W   java.net.SocketException occurs during processing http://www.springframework.org/schema/beans/spring-beans-2.0.xsd: Operation timed out: connect:could be due to invalid address
    [22.07.10 15:46:41:124 MSD] 00000043 XMLParser     W   java.net.SocketException occurs during processing http://www.springframework.org/schema/tool/spring-tool-2.5.xsd: Operation timed out: connect:could be due to invalid address
    [22.07.10 15:47:02:118 MSD] 00000043 XMLParser     W   java.net.SocketException occurs during processing http://www.springframework.org/schema/beans/spring-beans-2.5.xsd: Operation timed out: connect:could be due to invalid address
    [22.07.10 15:47:23:130 MSD] 00000043 XMLParser     W   java.net.SocketException occurs during processing http://www.springframework.org/schema/tool/spring-tool-3.0.xsd: Operation timed out: connect:could be due to invalid address
    [22.07.10 15:47:44:129 MSD] 00000043 XMLParser     W   java.net.SocketException occurs during processing http://www.springframework.org/schema/beans/spring-beans-3.0.xsd: Operation timed out: connect:could be due to invalid address
    

2 个答案:

答案 0 :(得分:1)

我有公共验证器框架的这个问题。我所做的是更改xml文件中的名称空间[通常指定它们],指向我在我的网络服务器上托管的本地版本。对于spring,我猜它是ApplicationContext.xml。

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd HTTP://yourservername/springns/schema/beans/spring-beans-2.0.xsd

这不是完美的解决方案,但它确实有效。

让我知道它是怎么回事。

答案 1 :(得分:0)

这可能是一个类加载器问题,其中另一个WAR的文件试图访问spring模式。或者appserver可能会尝试加载web.xml中指定的spring文件。

您可以尝试将spring.schemas和XSD文件放在EAR目录的根目录中。如果任何其他WAR文件试图加载文件,那么基于默认的PARENT_FIRST类加载器策略,它应该能够找到模式。只是为了完全排除类加载器问题,如果上一步没有帮助,请尝试将XSD文件放在JRE / lib / ext目录中的jar中并重新启动服务器。