本书的Demo运行不起来

时间:2020-12-24 21:04:58
我是Java新手,已经看了一些Java SE基础的书籍,现在想学习Java Web的书籍,之前已经看了一本有关jsp & servlet比较入门的书籍了,所以想进一步学习SSH方面的知识,所以最近在看<轻量级Java EE企业应用实战>这本书,但是到第三章的时候我把书中自带的光盘Demo导入Eclipse中,发现有一些错误,但是我已经按照书中讲的把对应的包拷贝到对应的目录了。具体如图:
本书的Demo运行不起来

或者大家有其他入门SSH的书籍可以推荐一下。

16 个解决方案

#1


build path 没有设置好,这个找个熟悉的人,帮你重新设置一下 build path 应该就可以了
ssh的话,建议一个一个的看,不要上去就看ssh融合的项目
把每个技术的配置文件等都弄清楚,然后使用ssh后,有问题也好定位处理

#2


看看你的错误信息。

#3


书中是有分开讲ssh,我刚看struts这一章,我是新手,build path是指要把那些类包配置到CLASSPATH中去吗?错误信息我大概能看懂,但是不知从哪下手改。

#4


JDK1.6.0_22  

把.classpath 中的
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/ jdk1.6.0_22">


改成自己的那个。

#5


u011461314,谢谢回复,我改了之后再导入Eclipse还是不行,虽然新手遇到这些很气馁,不过慢慢花时间解决吧。

#6


严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1488)
at 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.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 30 more
2014-11-12 12:29:26 org.apache.catalina.core.StandardContext startInternal
严重: Error filterStart
2014-11-12 12:29:26 org.apache.catalina.core.StandardContext startInternal
严重: Context [/Struts2Demo] startup failed due to previous errors
2014-11-12 12:29:26 org.apache.coyote.AbstractProtocolHandler start


上面是Tomcat的输出信息。

#7


引用 6 楼 miracle_yao 的回复:
严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
上面是Tomcat的输出信息。

你没有添加tomcat的jar包吧。
工程 ->右键 ->build path -> add library-> server runtime -> 添加上你的tomcat名称

#8


magi1201,谢谢回复,我已经添加了,现在LoginAction.java下的代码不会提示错误了,但是ErroePages一直提醒WEB-INF下的web.xml一直出错,但是看上去文件应该无问题,还有就是Tomcat显示那是那样的错误。

#9


错误因该是你build path的问题,搞javaweb可以看看《java web 开发实战》。。。

#10


q75822144,谢谢回复。李兴华的《java web 开发实战》吗?我快速看了这本书,而且他书中的代码不是用Eclipse的,另,Struts他讲的是1.x版本了,有点老。

#11


应该是jdk的版本不一致 或者是没有用到合适的jar

#12


引用 6 楼 miracle_yao 的回复:
严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1488)
at 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.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 30 more
2014-11-12 12:29:26 org.apache.catalina.core.StandardContext startInternal
严重: Error filterStart
2014-11-12 12:29:26 org.apache.catalina.core.StandardContext startInternal
严重: Context [/Struts2Demo] startup failed due to previous errors
2014-11-12 12:29:26 org.apache.coyote.AbstractProtocolHandler start


上面是Tomcat的输出信息。

你这个问题 是strusts配置文件中的问题

#13


JasonKuangs,谢谢回复。jdk的配置我听上面的把.classpath改过来了,按理来说,我把整本书自带jar都拷贝过去,应该没什么问题了。下面的struts.xml的内容:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<!-- 指定Struts 2配置文件的根元素 -->
<struts>
<!-- 指定全局国际化资源文件 -->
<constant name="struts.custom.i18n.resources" value="mess"/>
<!-- 指定国际化编码所使用的字符集 -->
<constant name="struts.i18n.encoding" value="GBK"/>
<!-- 所有的Action定义都应该放在package下 -->
<package name="lee" extends="struts-default">
<action name="login" class="org.crazyit.app.action.LoginAction">
<!-- 定义三个逻辑视图和物理资源之间的映射 -->
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>

对了,各位,我打算买《Java Web编程实战宝典:JSP+Servlet+Struts 2+Hibernate+Spring+Ajax》,上面李刚的书我是看电子版的。《Java Web编程实战宝典》是今年8月份才出版的,比较新,不知道怎么样。各位可以推荐一下吗?

#14


不是这样搞的  你直接拷贝demo 配置好了 你就能会了啊  你去看尚学堂的视频 网上有  把spring struts hibernate一点点加进去  你这样学才行

#15


star19860411,谢谢回复。我下了马士兵的视频,不过还没开始看。觉得先看点书再看视频效果可能更好些。

#16


挖个坟,我也遇到了一样的情况,请问楼主是怎么解决的呢?

#1


build path 没有设置好,这个找个熟悉的人,帮你重新设置一下 build path 应该就可以了
ssh的话,建议一个一个的看,不要上去就看ssh融合的项目
把每个技术的配置文件等都弄清楚,然后使用ssh后,有问题也好定位处理

#2


看看你的错误信息。

#3


书中是有分开讲ssh,我刚看struts这一章,我是新手,build path是指要把那些类包配置到CLASSPATH中去吗?错误信息我大概能看懂,但是不知从哪下手改。

#4


JDK1.6.0_22  

把.classpath 中的
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/ jdk1.6.0_22">


改成自己的那个。

#5


u011461314,谢谢回复,我改了之后再导入Eclipse还是不行,虽然新手遇到这些很气馁,不过慢慢花时间解决吧。

#6


严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1488)
at 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.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 30 more
2014-11-12 12:29:26 org.apache.catalina.core.StandardContext startInternal
严重: Error filterStart
2014-11-12 12:29:26 org.apache.catalina.core.StandardContext startInternal
严重: Context [/Struts2Demo] startup failed due to previous errors
2014-11-12 12:29:26 org.apache.coyote.AbstractProtocolHandler start


上面是Tomcat的输出信息。

#7


引用 6 楼 miracle_yao 的回复:
严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
上面是Tomcat的输出信息。

你没有添加tomcat的jar包吧。
工程 ->右键 ->build path -> add library-> server runtime -> 添加上你的tomcat名称

#8


magi1201,谢谢回复,我已经添加了,现在LoginAction.java下的代码不会提示错误了,但是ErroePages一直提醒WEB-INF下的web.xml一直出错,但是看上去文件应该无问题,还有就是Tomcat显示那是那样的错误。

#9


错误因该是你build path的问题,搞javaweb可以看看《java web 开发实战》。。。

#10


q75822144,谢谢回复。李兴华的《java web 开发实战》吗?我快速看了这本书,而且他书中的代码不是用Eclipse的,另,Struts他讲的是1.x版本了,有点老。

#11


应该是jdk的版本不一致 或者是没有用到合适的jar

#12


引用 6 楼 miracle_yao 的回复:
严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1488)
at 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.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 30 more
2014-11-12 12:29:26 org.apache.catalina.core.StandardContext startInternal
严重: Error filterStart
2014-11-12 12:29:26 org.apache.catalina.core.StandardContext startInternal
严重: Context [/Struts2Demo] startup failed due to previous errors
2014-11-12 12:29:26 org.apache.coyote.AbstractProtocolHandler start


上面是Tomcat的输出信息。

你这个问题 是strusts配置文件中的问题

#13


JasonKuangs,谢谢回复。jdk的配置我听上面的把.classpath改过来了,按理来说,我把整本书自带jar都拷贝过去,应该没什么问题了。下面的struts.xml的内容:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<!-- 指定Struts 2配置文件的根元素 -->
<struts>
<!-- 指定全局国际化资源文件 -->
<constant name="struts.custom.i18n.resources" value="mess"/>
<!-- 指定国际化编码所使用的字符集 -->
<constant name="struts.i18n.encoding" value="GBK"/>
<!-- 所有的Action定义都应该放在package下 -->
<package name="lee" extends="struts-default">
<action name="login" class="org.crazyit.app.action.LoginAction">
<!-- 定义三个逻辑视图和物理资源之间的映射 -->
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>

对了,各位,我打算买《Java Web编程实战宝典:JSP+Servlet+Struts 2+Hibernate+Spring+Ajax》,上面李刚的书我是看电子版的。《Java Web编程实战宝典》是今年8月份才出版的,比较新,不知道怎么样。各位可以推荐一下吗?

#14


不是这样搞的  你直接拷贝demo 配置好了 你就能会了啊  你去看尚学堂的视频 网上有  把spring struts hibernate一点点加进去  你这样学才行

#15


star19860411,谢谢回复。我下了马士兵的视频,不过还没开始看。觉得先看点书再看视频效果可能更好些。

#16


挖个坟,我也遇到了一样的情况,请问楼主是怎么解决的呢?