Возможно, это проблема DNN 9.1.1. Попробуйте перейти на 9.3.1, помня, что вы можете столкнуться с некоторыми проблемами, если ваши сторонние модули не были обновлены.
На проектах, которым меня присваивают, мы на самом деле делаем переключение на РОДИТЕЛЬСКО-ПОСЛЕДНИЙ для большинства наших приложений. Причиной этого обычно является определенная для приложения реализация чего-то или потребность в определенном для приложения пакете свойства, который Websphere использует также (переопределяющий установку Websphere входа свободного городского населения, например).
Если что-то повреждается после переключателя обычно из-за несколько неправильной установки приложения suddently начинает использоваться (в то время как перед переключателем это было переопределено ресурсами Websphere).
с использованием ByteArrayOutputStream и System.setXXX очень просто:
private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
private final ByteArrayOutputStream errContent = new ByteArrayOutputStream();
private final PrintStream originalOut = System.out;
private final PrintStream originalErr = System.err;
@Before
public void setUpStreams() {
System.setOut(new PrintStream(outContent));
System.setErr(new PrintStream(errContent));
}
@After
public void restoreStreams() {
System.setOut(originalOut);
System.setErr(originalErr);
}
примеры тестовых случаев:
@Test
public void out() {
System.out.print("hello");
assertEquals("hello", outContent.toString());
}
@Test
public void err() {
System.err.print("hello again");
assertEquals("hello again", errContent.toString());
}
Я использовал этот код для проверки параметра командной строки (утверждая, что -version выводит строку версии и т. д.)
Изменить:
Предыдущие версии этого ответа после тестов назывались System.setOut (null)
; Это причина того, что комментаторы ссылаются на NullPointerExceptions.
Если вы это делаете, я бы порекомендовал вам создать сценарий развертывания приложение, потому что это может быть одна из тех вещей, которые упускаются из виду при развертывании.