Используйте Apache Tiles - PullRequest
       19

Используйте Apache Tiles

1 голос
/ 09 января 2012

Добрый день в моем часовом поясе.

Я работаю над проектом, который находится в разработке более года, сервер приложений работает под управлением версии J2EE 1.3. Теперь я пытаюсь использовать фреймворк Apache Tilesчтобы отделить содержимое от макета. Проект имеет в WEB-INF / lib следующие библиотеки, которые реализуют структуру STRUTS -struts1.2.6 -struts-core-1.3.10 -struts-extras-1.3.10.jar -struts-taglib-1.3.10.jar

После этого вступления начался мой кошмар: 1) Чтобы настроить Tiles, я добавил следующий код в мой struts-config.xml:

<action path="/tilesTest"  
        parameter="aDef" 
        type="org.apache.struts.actions.ForwardAction" />

<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" />

   <plug-in className="org.apache.struts.tiles.TilesPlugin" >
    <set-property property="definitions-config" value="/WEB-INF/tilesdefs.xml" />
     <set-property property="moduleAware" value="true" />
   </plug-in>

Параметр 'aDef' определен в файле tiledefs.xml.Когда я вызываю действие в браузере, оно выдает мне следующее исключение:

java.lang.NoSuchMethodError: org.apache.struts.config.ForwardConfig.getContextRelative () Z org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig (TilesRequestProcessor.java:289)

После исследования я нашел сообщение, в котором говорится следующее:

Проверил папку lib приложения, чтобы найти Struts-core-1.3.8.jar, а также struts.jar.Именно из-за этого было выброшено исключение.Struts.jar имеет класс forwardConfig и метод getContextRelative ().Struts-core-1.3.8.jar имеет класс forwardConfig, но не метод getContextRelative ().Это было причиной проблемы.Поэтому удалите struts.jar, чтобы использовалась версия 1.3.8.- Дополнительно добавьте struts-extras-1.3.8.jar в приложение lib

Как я уже говорил в начале, у меня есть те же две библиотеки, единственная проблема в том, что это Struts.jar.В lib, в котором есть пакет tile, Struts-Core-1.3.8 этого пакета нет.Так что же мне делать, чтобы запускать плитки в этом приложении?

Извините за расширение вопроса, но я должен объяснить всю ситуацию.С наилучшими пожеланиями, СПАСИБО всем, кто пытается мне помочь

1 Ответ

2 голосов
/ 09 января 2012

Исправьте свой путь к классу. Не имеет большого смысла иметь две разные версии Struts в пути к классам. Классы плиток для Struts 1.3.10 находятся в Struts-tile-1.3.10.jar в комплекте с Struts-1.3.10.

...