当前位置: 首页 > 知识库问答 >
问题:

瓷砖3

锺离慈
2023-03-14

我试图使用Struts 2

<listener>
    <listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
</listener>

我在 glassfish 服务器上上传时遇到以下错误:

部署过程中发生错误:加载应用程序时出现异常:java.lang.IllegalState异常:ContainerBase.add子级:开始:org.apache.catalina.生命周期异常:java.lang.NoClassDefFoundError: org/spingframewor /core/io/support/ResourcePatternResolver.请参阅server.log了解更多详细信息。

错误消息是:

它似乎在寻找Spring Framework中的一些东西,但我正在使用Struts2 Tiles 3。我遗漏了什么吗?

这是我的代码:

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

    <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.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
    </listener>

    <context-param>
        <param-name>insertAttribute</param-name>
        <param-value>/WEB-INF/tiles.xml</param-value>
    </context-param>

      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list> 
</web-app>

磁贴.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
   "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
   "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>

<definition name="baseLayout" template="WebContent/BaseLayout.jsp">         

    <put-attribute name="menu" value="WebContent/Menu.jsp" />

</definition>

<definition name="/welcome.tiles" extends="baseLayout">
    <put-attribute name="title" value="Welcome" />
    <put-attribute name="body" value="WebContent/Welcome.jsp" />
</definition>

<definition name="/customer.tiles" extends="baseLayout">
    <put-attribute name="title" value="Customer Form" />
    <put-attribute name="body" value="WebContent/Customer.jsp" />
</definition>
<definition name="/customer.success.tiles" extends="baseLayout">
    <put-attribute name="title" value="Customer Added" />
    <put-attribute name="body" value="WebContent/SuccessCustomer.jsp" />
</definition>

</tiles-definitions>

支柱.xml:

 <struts>
<package name="default" namespace="/" extends="struts-default"> 
    <result-types>
        <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
    </result-types>
    <action name="login" 
        class="com.java.actions.LoginAction">
        <result name="success" type="tiles">/welcome.tiles</result>
        <result name="error">Login.jsp</result>
    </action>
    <action name="customer" 
        class="com.java.actions.CustomerAction">
        <result name="success" type="tiles">/customer.success.tiles</result>
        <result name="input" type="tiles">/customer.tiles</result>
    </action>
    <action name="customer-form">
        <result name="success" type="tiles">/customer.tiles</result>
    </action>

</package>
</struts>

我的jar文件列表:

  • antlr-2.7.2.jar
  • classworlds-1.1.jar
  • commons-beanutil-1.8.0.jar
  • commons-chain-1.2 jar
  • commons-collections-3.1.jar
  • 公用消化器-2.0.jar
  • commons-fileupload-1.2.2.jar
  • commons-io-2.0.1.jar
  • commons-lang-2.4.jar
  • commons-lang3-3.1.jar
  • commons-logging-1.1.jar
  • commons-logging-api-1.1.jar
  • commons-validator-1.1.3.1.jar
  • freemarker-2.3.19.jar
  • javassist-3.11.0.GA.jar
  • javax.servlet-api。jar
  • javax.servlet.jsp-api。jar
  • jcl-over-slf4j-1.7.2.jar
  • jul-to-slf4j-1.7.2.jar
  • log4j-over-slf4j-1.7.2.jar
  • mvel2-2.1.3.jar
  • ognl-3..5.jar
  • oro-2.0.8.jar
  • 卵形-1.31.jar
  • sitemesh-2.4.2.jar
  • slf4j-api-1.7.2.jar
  • slf4j-ext-1.7.2.jar
  • slf4j-jcl-1.7.2.jar
  • slf4j-jdk14-1.7.2.jar
  • slf4j-log4j12-1.7.2.jar
  • slf4j-migrater-1.7.2.jar
  • slf4j-nop-1.7.2.jar
  • slf4j-simple-1.7.2.jar
  • 支柱2-core-2.3.7.jar
  • 支柱2-tiles-plugin-2.3.7.jar
  • 瓷砖-api-3.0.1.jar
  • tiles-autotag-core-runtime-1.1.0.jar
  • 瓷砖-比较3.0.1.jar
  • 瓷砖-核心-3.0.1.jar
  • 瓷砖-el-3.0.1.jar
  • 瓷砖-extra-3.0.1.jar
  • 瓷砖-再标记-3..1.jar
  • 瓷砖-jsp-3.0.1.jar
  • 瓷砖-标高-3.0.1.jar
  • 瓷砖-3..1.jar
  • 瓷砖请求-pi-1.0.1.jar
  • tiles-request-freemarker-1.0.1.jar
  • 瓷砖请求-jsp-1.0.1.jar
  • tiles-request-mustache-1.0.1.jar
  • 瓷砖请求服务-1.0.1.jar
  • tiles-request-servlet-wildcard-1.0.1.jar
  • 瓷砖请求速度-1.0.1.jar瓷砖服务-3.0.1.jar
  • 瓷砖模板-3.0.1.jar
  • 瓷砖-速度-3.0.1.jar
  • 速度-1.6.3.jar
  • xstream-1.4.2jar
  • xwork-core-2.3.7.jar

我还遗漏了什么吗?

共有2个答案

盛跃
2023-03-14

我写了一个教程,可能在这里有所帮助:http://www.nabisoft.com/tutorials/struts2/maven-struts-2-enterprise-application-based-on-java-ee-7-and-glassfish-4

它告诉您如何在Glassfish 4上使用Struts2和Tiles 3以及Maven。您只需下载一个工作示例(Maven项目)并使用您选择的IDE,即NetBeans或Eclipse。我希望这对其他人有所帮助。确保按照教程中的描述配置JDBC资源,因为示例还使用JPA。我的教程中没有使用Spring。

解念
2023-03-14

这些是与工作的struts2 tiles3集成一起部署的jar(与您指向的链接相同):

aopalliance-1.0.jar
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
builder-0.6.2.jar
commons-beanutils-1.8.0.jar
commons-collections-3.2.jar
commons-digester-2.0.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
commons-lang-2.4.jar
core-0.6.2.jar
freemarker-2.3.19.jar
guava-r09.jar
jackson-core-asl-1.5.2.jar
jackson-mapper-asl-1.5.2.jar
javassist-3.11.0.GA.jar
jcl-over-slf4j-1.5.8.jar
mvel2-2.0.11.jar
ognl-3.0.5.jar
oro-2.0.8.jar
slf4j-api-1.5.8.jar
slf4j-jdk14-1.5.8.jar
spring-beans-2.5.6.jar
spring-context-2.5.6.jar
spring-core-2.5.6.jar
spring-web-2.5.6.jar
struts2-convention-plugin-2.3.4.1.jar
struts2-core-2.3.4.1.jar
tiles-api-3.0.1.jar
tiles-autotag-core-runtime-1.1.0.jar
tiles-compat-3.0.1.jar
tiles-core-3.0.1.jar
tiles-el-3.0.1.jar
tiles-extras-3.0.1.jar
tiles-freemarker-3.0.1.jar
tiles-jsp-3.0.1.jar
tiles-mvel-3.0.1.jar
tiles-ognl-3.0.1.jar
tiles-request-api-1.0.1.jar
tiles-request-freemarker-1.0.1.jar
tiles-request-jsp-1.0.1.jar
tiles-request-mustache-1.0.1.jar
tiles-request-servlet-1.0.1.jar
tiles-request-servlet-wildcard-1.0.1.jar
tiles-request-velocity-1.0.1.jar
tiles-servlet-3.0.1.jar
tiles-template-3.0.1.jar
tiles-velocity-3.0.1.jar
velocity-1.6.2.jar
velocity-tools-2.0.jar
xwork-core-2.3.4.1.jar

我强烈建议您使用maven进行构建。这里是一个完整的pom.xml:

http://maven.apache.org/xsd/maven-4.0.0.xsd”

<groupId>com.quaternion</groupId>
<artifactId>Struts2_Tiles3_Integration</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

<name>Struts2_Tiles3_Integration</name>

<properties>
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-convention-plugin</artifactId>
        <version>2.3.4.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-extras</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <compilerArguments>
                    <endorseddirs>${endorsed.dir}</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${endorsed.dir}</outputDirectory>
                        <silent>true</silent>
                        <artifactItems>
                            <artifactItem>
                                <groupId>javax</groupId>
                                <artifactId>javaee-endorsed-api</artifactId>
                                <version>6.0</version>
                                <type>jar</type>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
 类似资料:
  • 我找不到struts-tiles2-1.4.0-SNAPSHOT的源代码。jar版本的平铺。jar文件位于http://people.apache.org/~pbenedict/struts-osgi/org/apache/struts/struts-tiles2/1.4.0-SNAPSHOT/location。

  • 我计划使用Spring Boot将MVC应用程序从Spring 3移植到Spring 4。 这个web应用程序使用Apache Tiles。 考虑到百里香叶似乎是Spring的新标准,我有点困惑,并且集成得很好。 在这个应用程序中配置Tiles是一件痛苦的事情。 我们在这个应用程序中有大约20个JSP页面。 问题: 胸腔和瓷砖是相似的概念吗?(模板引擎?) 我已经看到胸腔叶可以和瓷砖一起使用…我不

  • 我想将磁贴 3 集成到我的 Web 应用程序 spring3 struts2 Hibernate中,但我没有任何想法要开始。我看到的所有示例都仅使用带有瓷砖的 struts2,没有Spring的集成。

  • 我正在开发一个平台,我有一个32x32的精灵和32x32的磁贴。我还使用了一个图块引擎,它在数组的帮助下生成地图。我使用一个< code>RectangleHelper.cs来修复与瓷砖和播放器的碰撞,到目前为止,它可以与瓷砖的顶部碰撞,也可以与瓷砖的左侧碰撞。 在第一张图中,我展示了“在顶部”碰撞工作正常。没有错误什么的。 在图2中,我展示了“碰撞左侧”,这也很棒。 但是在图3中,你可以看到这个

  • 我试图将我的java应用程序迁移到Spring Boot。目前,我正在运行带有Apache Tiles的Spring MVC 3.2。当我迁移到Spring Boot时,我的控制器仍然被称为好的,它们将视图传递给视图解析程序,但是当Tiles去拉JSP文件时,事情就分崩离析了。我得到的错误消息是: 有没有人成功地使用了带有Spring Boot的Apache Tiles?知道怎么做吗? 提前感谢您

  • 在 Stuts2 中,我正在使用 Tiles 插件为网站(菜单、页脚、页眉等)创建在每个页面上一致的布局。 现在每个磁贴只是一个静态的超文本标记语言内容。 是否可以通过每次呈现页脚时调用<code>Footer</code>动作类来使平铺更动态?例如:从数据库获取页脚内容。 如果我在应用程序中的每个页面的action类中都这样做,这将导致非常不可用的代码... 所以也许从瓷砖的角度来看是可能的?