我在j2ee应用程序中运行spring时遇到了一些问题。
简介:
我使用的是WebSphere 6.1(我不知道它是特定于websphere的还是更普遍的问题)
工件:
我不在应用程序中有弹簧配置文件或弹簧引用。只是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
答案 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中并重新启动服务器。