Проблемы с получением Tiles работают со Struts2 - PullRequest
2 голосов
/ 04 октября 2011

Я использую распорки 2.2.1 и плитки 2.2.2. Я выполнил каждый шаг, описанный здесь , но я не могу заставить работать плитки ... Я получаю следующую ошибку при развертывании моей войны на glassfish 3.1:

[#|2011-10-04T08:43:28.117+0200|SEVERE|glassfish3.1|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=74;_ThreadName=AutoDeployer;|Exception while invoking class com.sun.enterprise.web.WebApplication start method
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: java.lang.ClassNotFoundException: org.apache.struts2.tiles.StrutsTilesListener
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:130)

В моем WEB-INF / lib у меня есть commons-collection-3.1.jar, commons-fileupload-1.2.1.jar, struts2-core-2.2.1.jar, tile-api-2.2.2. jar, tile-core-2.2.2.jar, tile-jsp-2.2.2.jar и xwork-core-2.2.1.jar.

Это мой struts.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.devMode" value="true" />

    <package name="basicstruts2" extends="struts-default">
        <interceptors>
            <interceptor-stack name="appDefault">
                <interceptor-ref name="defaultStack">
                    <param name="exception.logEnabled">true</param>
                    <param name="exception.logLevel">ERROR</param>
                </interceptor-ref>
            </interceptor-stack>
        </interceptors>

        <default-interceptor-ref name="appDefault" />

        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>

        <global-results>
            <result name="exception">/jsp/exceptions/exception.jsp</result>
            <result name="webServiceException">/jsp/exceptions/webserviceexception.jsp</result>
        </global-results>

        <global-exception-mappings>
        <exception-mapping exception="java.lang.Exception" result="exception" />
        <exception-mapping exception="java.io.IOException" result="exception" />
        <exception-mapping exception="exceptions.WebServiceExceptionForStruts"
                result="webServiceException" />
        </global-exception-mappings>

        <action name="tilesTest" class="test.action.TilesTest">
            <result name="success" type="tiles">/welcome.tiles</result>
        </action>

        <action name="index">
            <result>/jsp/index.jsp</result>
        </action>

    </package>
</struts>

После вставки кода в мой struts.xml я получаю эту ошибку в eclipse:

enter image description here

А это мой web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>Consumer</display-name>

    <welcome-file-list>
        <welcome-file>/jsp/index.jsp</welcome-file>
    </welcome-file-list>

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <listener>
        <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
    </listener>
    <context-param>
        <param-name>tilesDefinitions</param-name>
        <param-value>/WEB-INF/tiles.xml</param-value>

    </context-param>

</web-app>

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 04 октября 2011

Вам не хватает плагина S2. Это указано в ссылочной статье.

Ваша вторая проблема с XML четко указана в ошибке IDE; порядок элементов, указанный в сообщении об ошибке, не соответствует порядку, который вы задаете для элементов в файле XML.

0 голосов
/ 06 октября 2011

ClassNotFoundException Всегда предупреждает вас, что отсутствует какой-либо класс / jar, на который есть ссылка.Убедитесь, что у вас есть все основные банки, необходимые для плиток.

В моем случае, у меня есть эти банки (кроме банок struts2) в моем приложении struts2 для тестирования проекта демонстрационной плитки.

  • commons-beanutils-1.7.0.jar
  • commons-digester-2.0.jar
  • commons-logging-1.1.1.jar
  • commons-logging-api-1.1.jar
  • ognl-3.0.1.jar
  • slf4j-api-1.6.2.jar
  • slf4j-simple-1.6.2.jar
  • struts2 -iles-plugin-2.2.3.1.jar
  • iles-api-2.2.2.jar
  • плик-compat-2.2.2.jar
  • тайлов-core-2.2.2.jar
  • iles-jsp-2.2.2.jar
  • tile-servlet-2.2.2.jar
  • tile-template-2.2.2.jar

Удачи.

С уважением, Амир Али

0 голосов
/ 04 октября 2011

ClassNotFoundException, похоже, отсутствует проблема с банкой.Можете ли вы увидеть банку плагина плиток в войне, которая развертывается на сервере glassfish.Мы столкнулись с этой проблемой, когда она не толкала банки из библиотеки на войну.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...