2011-11-24 25 views
1

我使用的MockStrutsTestCase测试一些使用JUnit的EEJBoss的我的动作类的战争文件指定web.xml和struts.xml中的位置。问题在于它无法找到web.xml和struts-config.xml文件(在服务器上部署时)。正在部署的ear文件的目录结构足够简单。ear文件分解成一个包含所有java文件的jar文件和一个包含所有WEB-INF的war文件。所以,如果我做的StrutsTestCase - 如何

setConfigFile("WEB-INF/struts-config.xml"); 
setServletConfigFile("WEB-INF/struts-config.xml"); 

这应该指向它对应的XML文件的位置。但它给出了一个MalFormedUrlException等。

当我测试动作类而不在服务器上部署它时,我指定了本地文件系统上的contextDirectory的路径,它工作正常。因此,我收集了在部署到服务器上时无法提供文件的正确位置的问题。

此外,MockStrutsTestCase不能用于在服务器上测试吗?或者我必须使用CactusStrutsTestCase?

回答

0

尝试像

setConfigFile("WEB-INF/classes/struts-config.xml"); 
+0

在struts-config文件中不中的类文件夹...它直接在WEB-INF ....另外,可以MockStrutsTestCase以用于测试服务器上,或CactusStrutsTestCase在我们部署war文件时使用 – Daud

+0

,然后部署在服务器上的内建文件创建一个新的文件夹“classes”,并且所有的源代码包都将被移动到这个文件夹中。所以struts.xml文件也会出现在这里。您可以检查部署在服务器上的war文件的结构。 – gprathour

+0

我的war文件的结构中没有WEB-INF下的classes文件夹 – Daud