StrutsTestCase /WEB-INF/web.xml не был найден - PullRequest
2 голосов
/ 07 июня 2011

Я использую StrutsTestCase2.4 под netbeans7.0 со Struts1.3
При запуске testCase отображается:

Error initializing action servlet
javax.servlet.UnavailableException: The /WEB-INF/web.xml was not found.

Я погуглил эту проблему, и она предлагается решить setContextDirectory(new File("../web"));:

protected void setUp() throws Exception
{
    super.setUp();
    setContextDirectory(new File("../web"));
 }

Но я не совсем уверен, каким должно быть местоположение new File().
Мое дерево файлов

|───build
│   ├───test
│   │   └───classes
│   │       └───com
│   │           └───stolon
│   │               ├───common
│   │               ├───database
│   │               ├───helpers
│   │               └───struts
│   └───web
│       ├───META-INF
│       └───WEB-INF
│           ├───classes
│           │   └───com
│           │       └───stolon
│           │           ├───algorithm
│           │           ├───database
│           │           ├───helpers
│           │           ├───servlet
│           │           ├───structures
│           │           └───struts
│           └───lib
├───nbproject
│   └───private
├───src
│   ├───conf
│   └───java
│       └───com
│           └───stolon
│               ├───algorithm
│               ├───database
│               ├───helpers
│               ├───servlet
│               ├───structures
│               └───struts
├───test
│   └───com
│       └───stolon
│           ├───common
│           ├───database
│           ├───helpers
│           └───struts
└───web
    ├───META-INF
    └───WEB-INF

Мой тестовый файл находится в режиме test-com-stolon-struts.

Ответы [ 3 ]

2 голосов
/ 03 августа 2011

Я только что прибежал к этому. WEB-INF / web.xml (и, вероятно, struts-config.xml и т. Д.) Должен находиться в вашем пути к классам во время выполнения тестов. Убедитесь, что netbeans помещает / build / web / в путь к классам теста.

Если бы вы использовали maven, вы бы добавили WEB-INF / *. Xml в качестве тестового ресурса.

    <testResources>
        <testResource>
            <directory>WEB-INF</directory>
            <targetPath>/WEB-INF</targetPath>
            <includes>
                <include>*.xml</include>
            </includes>
        </testResource>
    </testResources>
0 голосов
/ 06 августа 2012

Итак, исходя из приведенного выше дерева, местоположение нового File () должно быть «web»: protected void setUp() throws Exception { super.setUp(); setContextDirectory(new File("web")); }

0 голосов
/ 23 ноября 2011

Из структуры каталогов выглядит: setContextDirectory (новый файл ("../../../../ web"));

...