我在RAD 7.5上有一个网络应用程序。我正在使用Maven构建应用程序并在WebSphere 6.1上进行部署。
我的web.xml的一部分是:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:services.xml</param-value>
</context-param>
这是我引用services.xml的唯一地方。
我的services.xml位于文件夹
中FruitApplication/src/main/resources/services.xml
使用maven构建后,services.xml位于目标文件夹
中的以下路径中target/FruitApplication-1.0.0/WEB-INF/classes/services.xml
在部署时,我不断得到下面提到的错误。然而,在构建应用程序两次三次时,它会自行消失,然后再次出现。
此错误的实际原因是什么? 如何解决这个错误?
我的services.xml的顶部如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">
这里有什么需要改变的吗?
下面是我用于“maven-install”的完整pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>FruitApplication</groupId>
<artifactId>FruitApplication</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.1</version>
<configuration>
<archive>
<manifestFile>
src/main/webapp/META-INF/MANIFEST.MF
</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
... dependencies here ...
</dependencies>
</project>
我已经尝试了以下三个选项:
<param-value>classpath:services.xml</param-value>
<param-value>classpath:/services.xml</param-value>
<param-value>WEB-INF/classes/services.xml</param-value>
我如何部署:
我正在通过右键单击服务器并“添加或删除应用程序”
从服务器中删除该应用程序我正在进行“maven-clean”运行,然后在应用程序上运行“maven-install”,再次通过右键单击服务器添加应用程序并“添加或删除应用程序”
答案 0 :(得分:3)
你试过classpath:/services.xml
吗?前导斜杠意味着从类路径的根中提取资源。没有它,文件应该在任何类加载它的包中(我承认我不知道在这种情况下会是什么)。
答案 1 :(得分:1)
选择存在资源文件的项目。右键单击 - 构建路径 - 配置构建路径 - 来源 - 添加文件夹 - 添加资源文件所在的文件夹。这会将文件夹添加到类路径。
如果上面的项目/ jar是另一个WAR / EAR的一部分,那么选择WAR和/或EAR - 属性 - j2ee模块依赖,并选择上面的项目以添加到构建路径。 重启服务器。
答案 2 :(得分:0)
弄清楚它的Websphere / RAD或应用程序是否有问题?
首先构建war文件并将其放入Tomcat容器中,然后检查是否仍然看到错误。 1.如果您看到然后将services.xml复制到WEB-INF和WEB-INF / classes目录并查看它是否有效。 2.另外检查CLASSPATH系统环境变量,系统CLASSPATH可以覆盖您的应用程序类路径。
如果Tomcat的一切正常,那么Websphere / RAD就有一些特定的东西: 3.检查websphere环境,我记得在websphere中有一些选项可以设置/覆盖/前缀类路径。