[英]Struts2-tiles-plugin 2.3.28 - StrutsTilesListener throws NullPointerException
[英]strutstileslistener not found in struts 2 tiles program
我找不到我的应用程序有什么问题。 使用支柱 2 和瓷砖。 网页.xml:
<?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_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>strutsForScoodle</display-name>
<context-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tiles.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.apache.struts2.tiles.StrutsTilesListener
</listener-class>
</listener>
<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>
<welcome-file-list>
<welcome-file>login.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="/WEB-INF/content/tiles/BaseLayout.jsp">
<put-attribute name="title" value="" />
<put-attribute name="header" value="/WEB-INF/content/tiles/Header.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/content/tiles/Footer.jsp" />
</definition>
<definition name="logoff.tiles" extends="baseLayout">
<put-attribute name="title" value="Logoff" />
<put-attribute name="body" value="/WEB-INF/content/tiles/logoff.jsp" />
</definition>
<definition name="createSurvey.tiles" extends="baseLayout">
<put-attribute name="title" value="create Survey" />
<put-attribute name="body" value="/WEB-INF/content/tiles/createSurvey.jsp" />
</definition>
</tiles-definitions>
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>
<package name="default" extends="struts-default">
<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<action name="*Navigate" method="{1}"
class="de.umfragetool.action.NavigateAction">
<result name="overview" type="tiles">overview</result>
<result name="logoff" type="tiles">logoff</result>
<result name="createSurvey" type="tiles">createSurvey</result>
</action>
</package>
</struts>
来自 maven 的 pom.xml 看起来像这样:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Struts4Scoodle</groupId>
<artifactId>Struts4Scoodle</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>Scoodle</name>
<description>Scoodle Tool</description>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- struts -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.15.2</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.3.15.2</version>
</dependency>
<!-- tiles -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-tiles-plugin</artifactId>
<version>2.3.15.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-compat</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
</project>
所有这一切,我都失败了:
`Okt 17, 2013 8:34:41 PM org.apache.catalina.core.AprLifecycleListener init 信息:在 java.library.path 中找不到基于 APR 的 Apache Tomcat Native 库,该库可在生产环境中实现最佳性能:C: \\Program Files\\Java\\jre7\\bin;C:\\Windows\\Sun\\Java\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\ System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\MiKTeX 2.9\\miktex\\bin\\;C:\\Program Files\\Java\\jdk1.7.0_40;C: \\apache-maven-3.1.1-bin\\apache-maven-3.1.1\\bin;。 Okt 17, 2013 8:34:41 PM org.apache.tomcat.util.digester.SetPropertiesRule 开始警告:[SetPropertiesRule]{Server/Service/Engine/Host/Context} 将属性“源”设置为“org.eclipse.jst” .jee.server:Struts4Scoodle' 没有找到匹配的属性。 Okt 17, 2013 8:34:41 PM org.apache.coyote.AbstractProtocolHandler init 信息:初始化 ProtocolHandler ["http-bio-8080"] Okt 17, 2013 8:34:41 PM org.apache.coyote.AbstractProtocolHandler init 信息: Initializing ProtocolHandler ["ajp-bio-8009"] Okt 17, 2013 8:34:41 PM org.apache.catalina.startup.Catalina 加载信息:初始化处理时间为 561 毫秒 Okt 2013 年 17 月 8:34:41 PM org .apache.catalina.core.StandardService startInternal 信息:启动服务 Catalina Okt 17, 2013 8:34:41 PM org.apache.catalina.core.StandardEngine startInternal 信息:启动 Servlet 引擎:Apache Tomcat/7.0.12 Okt 17, 2013晚上 8:34:42 org.apache.catalina.core.StandardContext listenerStart Schwerwiegend:配置 org.apache.struts2.tiles.StrutsTilesListener java.lang.NoClassDefFoundError 类的应用程序侦听器时出错:org/apache/tiles/web/startup/TilesListener在 java.lang.ClassLoader.defineClass1(Native Method) 在 java.lang.ClassLoader.defineClass(Unknown Source) 在 java.security.SecureClassLoader.defineClass(Unknown Source) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1148) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1643) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) 在 org.apache.catalina.core.DefaultInstanceManager.loadClass( DefaultInstanceManager.java:415) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) at org.apache.catalina .core.StandardContext.listenerStart(StandardContext.java:4638) 在 org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5204) 在 org.apache.catalina.core.StandardContext$1.call(StandardContext.java) :5199) 在 java.util.concurrent.FutureTask.run(Unkn 自己的来源)在 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 在 java.lang.Thread.run(Unknown Source) 引起:java。 lang.ClassNotFoundException:org.apache.tiles.web.startup.TilesListener 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java) :1521) ... 还有 17 个
Okt 17, 2013 8:34:42 PM org.apache.catalina.core.StandardContext listenerStart Schwerwiegend:由于先前的错误而跳过安装应用程序侦听器 Okt 17, 2013 8:34:42 PM org.apache.catalina.core .StandardContext startInternal Schwerwiegend: Error listenerStart Okt 17, 2013 8:34:42 PM org.apache.catalina.core.StandardContext startInternal Schwerwiegend: Context [/Struts4Scoodle] 启动失败,由于之前的错误 Okt 17, 2013 8:34:42 PM org.apache.coyote.AbstractProtocolHandler 启动信息:正在启动 ProtocolHandler ["http-bio-8080"] Okt 17, 2013 8:34:42 PM org.apache.coyote.AbstractProtocolHandler 启动信息:正在启动 ProtocolHandler ["ajp-bio-8009 "] Okt 17, 2013 8:34:42 PM org.apache.catalina.startup.Catalina 启动信息:服务器启动时间为 739 毫秒`
这是我第一次使用 Tiles,但我不明白。 非常感谢。
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>3.0.1</version>
</dependency>
删除上述这些依赖项。 struts2-tiles-plugin 将自动添加tiles 依赖项,这些依赖项的版本是2.* 而不是3.*
导入到库 jsp-api-2.1,因为 struts2-tiles-plugin 依赖它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.