环境是:MyEclipse 6.0.1
        jre 1.5.0.011
        struts-2.1.6-all
lib中导入的包是:commons-fileupload-1.2.1.jar
                 connons-io-1.3.2.jar
                 commons-logging-1.0.4.jar
                 freeer-2.3.13.jar
                 ognl-2.6.11.jar
                 struts2-core-2.1.6.jar
                 xwork-2.1.2.jar
login.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'login.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
    <form action="login.action" method="post">
    username:<input type="text" name="password"><br>
    password:<input type="password" name="password"><br>
    <input type="submit" value="submit">
    </form>
  </body>
</html>result.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'result.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
    This is my JSP page. <br>
  </body>
</html>LoginAction:
package com.biwit.action;public class LoginAction {
private String username;
private String password;

public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public String execute() throws Exception {
return "success";
}
}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="struts2" extends="struts-default">
<action name="login" class="com.biwit.action.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>

</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
<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>

解决方案 »

  1.   

    报错信息是:
    Mar 4, 2009 11:14:47 PM org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Users\Krantz\AppData\Local\Genuitec\Common\binary\com.sun.java.jre.win32.x86_1.5.0.011\bin;D:\JAVA\apache-tomcat-6.0.18\apache-tomcat-6.0.18\bin
    Mar 4, 2009 11:14:48 PM org.apache.coyote.http11.Http11Protocol init
    INFO: Initializing Coyote HTTP/1.1 on http-8080
    Mar 4, 2009 11:14:48 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 890 ms
    Mar 4, 2009 11:14:48 PM org.apache.catalina.core.StandardService start
    INFO: Starting service Catalina
    Mar 4, 2009 11:14:48 PM org.apache.catalina.core.StandardEngine start
    INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
    Mar 4, 2009 11:14:50 PM com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
    INFO: Parsing configuration file [struts-default.xml]
    Mar 4, 2009 11:14:50 PM com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
    INFO: Unable to locate configuration files of the name struts-plugin.xml, skipping
    Mar 4, 2009 11:14:50 PM com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
    INFO: Parsing configuration file [struts-plugin.xml]
    Mar 4, 2009 11:14:50 PM com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
    INFO: Parsing configuration file [struts.xml]
    Mar 4, 2009 11:14:51 PM org.apache.catalina.core.StandardContext filterStart
    SEVERE: Exception starting filter struts2
    java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class com.biwit.action.LoginAction)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1851)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
    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)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    Mar 4, 2009 11:14:51 PM org.apache.catalina.core.StandardContext start
    SEVERE: Error filterStart
    Mar 4, 2009 11:14:51 PM org.apache.catalina.core.StandardContext start
    SEVERE: Context [/struts2] startup failed due to previous errors
    Mar 4, 2009 11:14:52 PM org.apache.coyote.http11.Http11Protocol start
    INFO: Starting Coyote HTTP/1.1 on http-8080
    Mar 4, 2009 11:14:52 PM org.apache.jk.common.ChannelSocket init
    INFO: JK: ajp13 listening on /0.0.0.0:8009
    Mar 4, 2009 11:14:52 PM org.apache.jk.server.JkMain start
    INFO: Jk running ID=0 time=0/48  config=null
    Mar 4, 2009 11:14:52 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 3983 ms
      

  2.   

    这一段去掉就可以访问,加上就无法访问:
    <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>
      

  3.   

    例如你本地上编译使用的 JDk 版本是 jdk5.0, 而远程服务器上的 jdk 的版本是 jdk1.4, 所以编译的程序在远程就出错。
    更改JAVA,JDK的版本
      

  4.   

    把<filter-class>org.apache.struts2.dispatcher.FilterDispatcher </filter-class> 换成
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
      

  5.   

    再不行你看哈这个帖子
    http://braveheart.me.blog.163.com/blog/static/6171451720091191721896/#
      

  6.   

    你在编译器里编译java文件生成的class,和你tomcat使用的jdk版本不一样!!
      

  7.   

    跟我写的是一样啊!没看出来什么问题呀。也许跟上面那个大哥说的一样,JDK的问题吧。
      

  8.   

    改了之后还是不行,看了那个网址的内容之后还是无法解决。
    我通过Window>Preferences>检查了jre的版本,我只安装了一个jre啊,tomcat使用的也是同一个jre,这所有的操作都在我自己这一台电脑上进行的,问题太诡异了。
      

  9.   

    注意: 有的MyEclipse自带了一个版本较低的JDK哦
    检查下你的Installed到底是哪个版本
      

  10.   

    我安装的JDK是jdk1.6.0_11,jre6
    安装的MyEclipse是6.0.1版本的。发现MyEclipse 6.0.1自带了个5.0版本的jre
    我在window>properties中将MyEclipse的jre和tomcat的jre都指向我自己安装的。
    但是在运行时,通过任务管理器查看,有两个javaw.exe在运行,MyEclipse运行的是5.0的javaw.exe;Tomcat运行的是6.0的javaw.exe
    javaw.exe是什么东东?为什么MyEclipse没有运行javaw.exe 6.0版本的?
      

  11.   

    myeclipse里面自带的是5.0,而tomcat自带的是6.0.你需要配置下myeclipse里的jdk。
    根据INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.我看应该是jdk的问题。
    还有login.jsp里的这一行
    username:<input type="text" name="password"><br>
    中的name="password"是不是应该改成name="username".
      

  12.   

    我只问问楼主之前有没有自己试过手工做struts2的,如果有的话可能是你之前的环境变量里的classpath里设置了struts2-core-2.1.6.jar和xwork-2.1.2.jar文件,或者是你把这两个文件放在了jdk目录里的jre目录里lib目录里的ext目录里,如果是这样的话,要删掉这两个jar文件,这也可以说是struts2的bug
      

  13.   

    Bad version number in .class file 这个错误提示是Jdk版本问题。
      

  14.   

    大哥你的 Struts 的jar 包导入了没?
      很有可能是标签库的问题..
      

  15.   

    一大早上又碰到STRUTS2的问题 真晦气。。你的STRUTS2.XML文件让你放到哪里了?你用的是STRUTS2.1.6吧?<?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-2.0.dtd 改成2.1dtd看看?我用的包有
    commons-fileupload-1.2.1.jar
    commons-io-1.3.2.jar
    commons-logging-1.1.jar
    freeer-2.3.13.jar
    jsonplugin-0[1].33.jar
    junit-3.8.1.jar
    ognl-2.6.11.jar
    spring-test-2.5.6.jar
    struts2-core-2.1.6.jar
    xwork-2.1.2.jar如果还不行 继续顶贴
      

  16.   

    我之前做这个例子的时候也遇到过问题,但我是建错工程导致包冲突,不能正常工作,不知你是不是建Myeclipse里的web工程的
      

  17.   

    关于这个问题There is no Action mapped for namespace / and action name login.的解决份两个步骤:
    1.-----首先查看你的struts.xml 文件是否在src目录下;2.-----检查struts.xml文件的语法是否正确:                如果1正确的话那就一定是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="struts2" extends="struts-default">
     
      <action name="login" class="com.test.action.LoginAction">
      <result name="success">/result.jsp</result>
      </action>
     </package>
    </struts>   
              那么就只有是红字的部分写错了 查看你的是否吧struts-default中间的“-”错写成了struts=default;
      

  18.   

    TOMCAT中的xml-apis.jar文件删除试试
      

  19.   

    留个脚印,我也碰到这样的问题,不单单是我写的程序有问题,在官网上下的程序,导入进eclipse后也是这个问题,晕啊
      

  20.   

    我的问题解决了导入的基本包要7的,不是网上说的5个
    commons-fileupload-1.2.1.jar
    freeer-2.3.13.jar
    xwork-2.1.2.jar
    commons-io-1.3.2.jar
    ognl-2.6.11.jar
    commons-logging-1.0.4.jar
    struts2-core-2.1.6.jar楼主试试。
      

  21.   

    楼主,你的程序我试过了按我上面说的用7个库,没问题的我的平台eclipse 3.2 + java 1.6.0_07 + tomcat 5.5 + struts 2.1.6
      

  22.   

    就是JDK版本问题,把你的编译环的境JDK改一下就成了..
      

  23.   

    关于这个问题There is no Action mapped for namespace / and action name login.
    你在login.jsp文件中定义了action="login.action"
    <body>
            <form action="login.action" method="post">
            username:<input type="text" name="password"><br>
            password:<input type="password" name="password"><br>
            <input type="submit" value="submit">
            </form>
    </body>
    而在struts.xml文件中却定义的<action name="login" class="com.biwit.action.LoginAction">将login.jsp文件中action="login.action"改成action="login"
      

  24.   

    我看是你的web.xml中过滤器设置错了,可以改成*.action
      

  25.   

    不是filter的事情,是你的LoginAction错误,仔细看日志错误,
    filter会自动加载action类,你的action类错误,不知道你的院文件怎么写的
      

  26.   

    我也遇到的同样的问题。
    一共包含:3个页面;index.jsp-登录表单;success.jsp-登录成功显示;fail.jsp-登录失败显示
    MyEclipse 5.5GA Tomcat 5.x我是按照张冰老师的视频做的,也是导了5个包。
    在看到27楼的回答后,试了一下,问题就解决了。不知道楼主解决问题没有?加油!不要泄气
      

  27.   

    wanglex
     说的极是,我的也是怎么做都没行,就是这样做,加多两个包才能行
      

  28.   

    login.jsp  
       username:<input type="text" name="username">   不是password  暂时发现了这个问题
      

  29.   

    我也遇到这个问题好郁闷哦:
    我吧所有struts所有包都加到lib中去了:
    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>
        <!--  Overwrite Convention -->
        <constant name="struts.derMode" value="true"/>
        <package name="leeTest1" extends="struts-default">
         <action name="login" class="com.test.action.LoginAction">
         <result name="success">/result.jsp</result>
         </action>
         </package>
    </struts>
    web.xml配置如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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">
    <filter>
     <filter-name>struts2_clear</filter-name>
     <filter-class>org.apache.dispatcher.ActionContextCleanUp</filter-class>
      </filter>
     <filter-mapping>
      <filter-name>struts2_clear</filter-name>
       <url-pattern>/*</url-pattern>
      </filter-mapping>
      <filter>
     <filter-name>struts2</filter-name>
     <filter-class>org.apache.dispatcher.FilterDispatcher</filter-class>
      </filter>
     <filter-mapping>
      <filter-name>struts2</filter-name>
       <url-pattern>/*.action</url-pattern>
      </filter-mapping>
     </web-app>