我试图在Tomcat 6中运行Hello World Struts2项目。
我不断得到:
root cause: java.lang.ClassNotFoundException: org.apache.struts2.interceptor.SessionAware
java.lang.NoClassDefFoundError: org/apache/struts2/interceptor/SessionAware
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1374)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:138)
at com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:96)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:398)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:355)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:460)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:265)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:189)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
但是,我确实在项目的WEB-INF/lib文件夹中为struts2提供了所需的jars。
罐:
struts core xwork ognl freemarker commons文件上传commons io commons lang
有什么想法吗?
我遵循了一个在线Struts2 HelloWorld示例:
你好世界动作类:
package za.co.vine.tutorialspoint.struts2;
public class HelloWorldAction{
private String name;
public String execute() throws Exception {
return "success";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
你好世界jsp:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello World, <s:property value="name"/>
</body>
</html>
指数jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World From Struts2</h1>
<form action="hello">
<label for="name">Please enter your name</label><br/>
<input type="text" name="name"/>
<input type="submit" value="Say Hello"/>
</form>
</body>
</html>
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="helloworld" extends="struts-default">
<action name="hello"
class="za.co.vine.tutorialspoint.struts2.HelloWorldAction"
method="execute">
<result name="success">/HelloWorld.jsp</result>
</action>
</package>
</struts>
网状物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_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>Struts 2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
关于您的问题,问题可能在服务器或IDE工具中,所以请分别在project clean和server clean下清除这两个工具。
如果您再次遇到同样的问题,请在此链接下载struts2
struts2只需从该文件夹复制struts-blank.war,并使用新的工作区
运行一个程序(struts-blank.war包含测试程序),它肯定会工作。
您使用的xwork core jar版本似乎与其他jar版本不兼容。
尝试使用xwork-2.1.2。罐子我之前成功地使用过它。
如果仍然不起作用,请确保使用与示例应用程序中相同的每个jar版本。
编辑:
根据您的代码,尝试更改
public String execute() throws Exception {
return "success";
}
到
public String execute() throws Exception {
setName("Honey Bunny");
return "success";
}
由于您没有调用setter,Struts似乎正在会话中搜索属性名。
只需在WEB-INF/lib中添加以下JAR即可。如果你不需要,移除所有相关的罐子。
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
freemarker-2.3.19.jar
javaassist-3.11.0.GA.jar
ognl-3.0.5.jar
struts2-core-2.3.7.jar
xwork-core-2.3.7.jar
如果你没有这些罐子,那就下载吧。
这里是org。阿帕奇。struts2。调度员。FilterDispatcher现在已被弃用。所以编辑你的网站。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_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>Struts 2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
到
<?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>Struts2 Application</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>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
</web-app>
我想这可以为你做这项工作。
以上图示了正常的消息流。 正常流程: 步骤 描述 1 过程Listener启动工作。 2 Worker通过定期向自己发送Do消息来计划工作 3, 4, 5 接收到Do时Worker通知CounterService更新计数器值,三次。Increment消息被转发给Counter,它会更新自己的计数器变量并将当前值发给Storage。 6, 7 Worker向CounterService请求计数器的当
我在翻关于spring boot项目的例子。我已经通过maven编译并创建了一个jar文件,但是在运行尝试时出现了一个错误。 https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-simple 错误: java-jar spring-boot-sample-
我正在遵循Google Drive SDK的quickstart页面的示例python代码(https://developers.Google.com/Drive/quickstart#set_up_the_sample),并得到了错误 输入验证码后。步骤相当简单,所以我想知道示例代码是否已经过时(虽然我没有看到其他人遇到这个错误,所以这可能与我的设置有关,但我不确定会是什么)。谢谢你的帮助。
这段代码来自google drive api示例,我试图实现这段代码,但它在行中显示了错误....Credential=GoogleAccountCredential.usingOAuth2(this,drivescopes.drive);.....给定的错误是......GoogleAccountCredential类型中的方法usingOAuth2(Context,Collection)不适用
Nginx 错误日志是运维人员最常见但又极其容易忽略的日志类型之一。Nginx 错误日志即没有统一明确的分隔符,也没有特别方便的正则模式,但通过 logstash 不同插件的组合,还是可以轻松做到数据处理。 值得注意的是,Nginx 错误日志中,有一类数据是接收过大请求体时的报错,默认信息会把请求体的具体字节数记录下来。每次请求的字节数基本都是在变化的,这意味着常用的 topN 等聚合函数对该字段
我试图使用Eclipse在http://projects.spring.io/spring-framework/运行Spring框架“快速入门”教程 我首先在Eclipse中构建了一个Maven项目,并添加了三个. java文件。代码如下 然后我右键单击Eclipse并选择“作为运行” > 错误:发生了JNI错误,请检查您的安装并重试 发生Java异常。 控制台显示 线程“main”java.la