使用eclipse运行java项目开发javaWeb项目,隔几分钟自动报这个错,但不影响操作,求解决,谢谢

8500人阅读
JAVA(183)
为了项目调试方便,并没有采用jar包方式引用,而是直接引用的项目;项目中用到了引用项目中的Servlet,项目启动也成功了,没有报任何的异常;但是只要一用到引用项目中的Servlet,就报下面的错误:
java.lang.ClassNotFoundException: com.messagePush.core.LongPollingServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
后来发现是因为发布的时候引用的项目没有被打包发布到“C:\tomcat7push\webapps\项目名称\WEB-INF\lib”目录的原因。
解决办法:
在项目名称上单击鼠标右键》Properties》Deployment Assembly
请注意,如果你引用的项目是Java Web项目,后面显示了扩展名就是“.war”,这是转换之前的:
如果希望它是“.jar”需要把引用的项目转换为Java项目,有关如何转换的方法请参考“如何将Java Web项目转换为Java项目?”。
保存之后,再重新Build发布项目,引用的项目已经打包到对应的目录下了,如下图:
满心欢喜的启动调试,结果发现问题依旧!!!
究竟是什么原因呢,难道是包有问题?
打开看一下,果然如此:
会发现包里多出了两层目录!!
尝试手动把“com”复制到包的根目录下,问题就解决了。
但这也不是办法啊,到底是什么原因导致了多出两层目录“\WEB-INF\classes”这个问题呢?
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7483738次
积分:58435
积分:58435
排名:第46名
原创:775篇
转载:206篇
译文:33篇
评论:1650条
文章:129篇
阅读:1967955
文章:33篇
阅读:203199
文章:16篇
阅读:162913
阅读:14506
文章:29篇
阅读:366213
文章:18篇
阅读:336235
文章:44篇
阅读:371574
(28)(17)(14)(18)(26)(16)(9)(23)(20)(17)(4)(16)(12)(17)(25)(34)(19)(15)(17)(15)(23)(12)(12)(14)(13)(14)(20)(58)(25)(31)(16)(33)(31)(20)(24)(23)(21)(20)(14)(36)(14)(14)(7)(5)(15)(3)(2)(9)(6)(7)(32)(3)(8)(7)(22)(2)(30)(4)
关注我的订阅号“微wx笑”2016年1月 Java大版内专家分月排行榜第二2015年12月 Java大版内专家分月排行榜第二2015年8月 Java大版内专家分月排行榜第二2015年3月 Java大版内专家分月排行榜第二2015年1月 Java大版内专家分月排行榜第二2014年12月 Java大版内专家分月排行榜第二2014年11月 Java大版内专家分月排行榜第二2014年6月 Java大版内专家分月排行榜第二2014年4月 Java大版内专家分月排行榜第二2014年1月 Java大版内专家分月排行榜第二2013年11月 Java大版内专家分月排行榜第二
2015年9月 Java大版内专家分月排行榜第三2015年6月 Java大版内专家分月排行榜第三2015年5月 Java大版内专家分月排行榜第三2015年2月 Java大版内专家分月排行榜第三2014年3月 Java大版内专家分月排行榜第三2013年12月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。3.6 使用Eclipse开发一个JSP网站
本文所属图书&>&
本书以初学者为核心,全面介绍了Java Web开发中常用的各种技术。内容排列上由浅入深,让读者循序渐进掌握编程技术;在内容讲解上结合丰富的图解和形象的比喻,帮助读者理解晦涩难懂的技术;在内容形式上附有大量...&&
Eclipse安装完成后,就可以在Eclipse中开发Web应用了。在Eclipse中开发JSP网站的基本步骤如下。
【例3.1】 创建一个JSP网站,在页面中输出文字&坚韧、创新、博学、笃行&,具体操作步骤如下:
&实例位置:光盘\MR\\第3章\3.1
Step1 启动Eclipse,并选择一个工作空间,进入到Eclipse的工作台界面。
Step2 在工具栏上选择&文件&/&新建&/Dynamic Web Project菜单项,将打开&新建动态Web项目&对话框,在该对话框的Project name文本框中输入项目名称,这里为firstProject,在Dynamic Web module version下拉列表中选择3.0;在&配置&下列表框中选择已经配置好的Tomcat服务器(这里为Tomcat 7.0),其他采用默认,如图3.31所示。
Step3 单击&下一步&按钮,将打开配置应用的对话框(这里采用默认),再单击&下一步&按钮,将打开如图3.32所示的&配置Web模块设置&对话框,这里采用默认。
说明&在图3.32中,如果采用默认设置,新创建的项目将不自动创建web.xml文件,如果需要自动创建该文件,那么可以选中Generate web.xml deployment descriptor复选框。
Step4 单击&完成&按钮,完成项目firstProject的创建。这时,在Eclipse的&项目资源管理器&中,将显示新创建的项目。
Step5 在Eclipse的&项目资源管理器&中,选中firstProject节点下的WebContent节点,并单击鼠标右键,在打开的快捷菜单中,选择&新建&/ JSP File菜单项,打开New JSP File对话框,在该对话框的&文件名&文本框中输入文件名index.,其他采用默认设置,如图3.33所示。
Step6 单击&完成&按钮,完成JSP文件的创建。此时,在项目资源管理器的WebContent节点下,将自动添加一个名称为index.的节点,同时,Eclipse会自动以默认的与JSP文件关联的编辑器将文件在右侧的编辑窗口中打开。
Step7 将index.jsp文件中的默认代码修改为以下代码,并保存该文件。
&%@ page language=&java& contentType=&text/ charset=UTF-8&
&pageEncoding=&UTF-8&%&
&!DOCTYPE HTML&
&meta charset=&utf-8&&
&title&使用Eclipse开发一个JSP网站&/title&
坚韧、创新、博学、笃行
Step8 在&项目资源管理器&中选择项目名称节点,在工具栏上单击按钮中的黑三角,在弹出的快捷菜单中选择&运行方式&/&在服务器上运行&菜单项,将打开&在服务器上运行&对话框,在该对话框中,选中&将服务器设置为项目缺省值(请不要再询问)&复选框,其他采用默认设置,如图3.34所示。
Step9 单击&完成&按钮,即可通过Tomcat运行该项目。运行结果如图3.35所示。
分享到:更多
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
文章下载读书Eclipse学习之二:Eclipse开发JavaWeb应用
Eclipse学习之二:Eclipse开发JavaWeb应用
编辑:www.fx114.net
本篇文章主要介绍了"Eclipse学习之二:Eclipse开发JavaWeb应用",主要涉及到Eclipse学习之二:Eclipse开发JavaWeb应用方面的内容,对于Eclipse学习之二:Eclipse开发JavaWeb应用感兴趣的同学可以参考一下。
主要介绍主流的java web编程技术、设计模式和框架,以及如何利用Eclipese开发Web应用程序。
要点:1、Java Web编程的主要组件技术;
&&&&& 2、MVC设计模式;
&&&&& 3、用Eclipse构建一个基于MVC模式的Java Web的应用程序。
目的:掌握如何用Eclipse构建一个基于MVC模式的Java WEB的应用程序。
一、java web 编程的主要组件技术
Html、jsp、Servlet、Javabean、Jdbc、Xml、Tomcat、MySQL
1.1 MVC设计模式
&&&&&&& 今天,我们见到的绝大部分应用,都是基于B/S(浏览器/服务器)架构的,其中的服务器就是Web服务器。可见,Web应用是目前广泛使用的应用模式。
Web程序开发方法的发展:
JSP的Model 1
JSP的Model 2
&&&&&&&&&&&&
1& Model 1和Model 2
对于Java的动态Web编程技术而言,则经历了Model 1和Model 2时代。
Model 1: Model 1就是JSP大行其道的时代,在Model 1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。
Model 2: Model 2下JSP不再承担控制器的责任,它仅仅是表现层角色,仅仅用于将结果呈现给用户,JSP页面的请求与Servlet(控制器)交互,而Servlet负责与后台的JavaBean通信。
在Model 2模式下,模型(Model)由JavaBean 充当,视图(View)由JSP页面充当,而控制器(Controller)则由Servlet充当。
2& Model 1和Model 2的比较
对于非常小型的Web站点,如果后期的更新、维护工作不是特别大,可以使用Model 1的模式来开发应用,而不是使用Model 2的模式。
虽然Model 2提供了更好的可扩展性及可维护性,但增加了前期开发成本。从某种程度上讲,Model 2为了降低系统后期维护的复杂度,却导致前期开发的更高复杂度。
3& MVC思想
MVC并不是Java语言所特有的设计思想,也并不是Web应用所特有的思想,它是所有面向对象程序设计语言都应该遵守的规范。
MVC思想将一个应用分成三个基本部分:Model(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。
MVC: M(model)是指数据模型,
&&&&& V(View)是指用户界面,
&&&&& C(Control)则是控制器。
&&& 使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器3者之间的关系和各自的主要功能。
MVC的组成部分
视图(View)代表用户交互界面,对于Web应用来说就是HTML界面。
模型(Model):就是业务流程/状态的处理以及业务规则的制定。
控制(Controller):可以理解为一个分发器,他来决定选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求,控制层并不做任何的数据处理。
MVC带来的好处:
MVC从根本上强制性的将它们分开,最大程度上实现了程序代码与网页的分离;数据和业务规则从表示层分开,所以可以最大化的重用代码。
4& 常用的MVC框架
Struts:包括struts1和struts2两个。
JSF: JSF是一个标准 ,目前,JSF是作为JEE 5.0的一个组成部分,与JEE 5.0一起发布
JSF的行为方法在POJO中实现,JSF的Managed Bean无需继承任何特别的类。因此,无需在表单和模型对象之间实现多余的控制器层。JSF中没有控制器对象,控制器行为通过模型对象实现。
&&&& &JSF的事件框架可以细化到表单中每个字段。JSF依然是基于JSP/Servlet的,仍然是JSP/Servlet架构,因而学习曲线相对简单
二、 用Eclipse构建一个基于MVC模式的Java Web应用程序
题目要求:
(1)技术要求:
&&&& &按照MVC设计模式,利用JSP、Servlet及JavaBean构建一个简单的登录系统。
(2)系统功能要求:
&&&& &当用户在登录页面上填写用户名和密码并提交后,系统检查该用户是否已经注册,若注册,系统进入主页面,否则,进入注册页面。系统的工作流程见下图。
2.1& 构建系统的处理步骤
(1)数据库设计:构建数据库表T_UserInfo
(2)在Eclipse中创建一个项目:Login_Proj
(3)构建视图组件:登录页面(login.jsp)、主页面(main.jsp)、注册页面(register.jsp),注册失败(Register_err.jsp),注册成功(Register_succ.jsp)
(4)构建控制层组件:
&&& 一个servlet(LoginServlet.java)----&实现登录的控制
&&& 一个servlet(RegisterServlet.Java)-à实现注册的验证控制
(5)构建业务逻辑层组件(模型组件):
&&&& 一个JavaBean:user,doa,db_op
(6)部署该程序到服务器Tomcat中,然后运行。
(1)数据库设计:构建数据库表T_UserInfo
利用MySQL数据库,
创建数据库:user
创建表及其结构:T_UserInfo
(2)在Eclipse中创建一个项目:Login_Proj
&&&& &按Eclipse建立工程的提示,建立Web工程,工程的名称为:Login_Proj。
(3)构建视图组件:-- 登录页面(login.jsp)
& 选中工程“Login_Proj”,
& 击右键,选“新建”,
& 按Eclipse的提示,建立jsp,名称为:Login。
& 修改默认jsp内容,达到我们所要求的编码。
login.jsp的代码
&%@ page language=&java& contentType=&text/html&& pageEncoding=&gb2312&%&
& &head&&&&&
&&& &title&登录页面&/title&
& &&&body&
&& &form action=&Loginservlet“&&& method=&post&&
&&&&&&& 用户名: &input type=&text& name=&username& size=&15& &
&&&&&&&& &br&&br&
&&&&&&& 密& 码:& &input type=&password& name=&password& size=&15& &
&&&&&&& &br&&br&
&&&&&& &input type=&submit&& name=&submit&& value=&登录&&&br&
&& &/form&
(3)构建视图组件-- 主页面(main.jsp)
&选中工程“Login_Proj”,
& 击右键,选“新建”,
& 按Eclipse的提示,建立jsp,名称为:main.jsp。
& 修改默认jsp内容,达到我们所要求的编码。
main.jsp代码
&%@ page language=&java& contentTYpe=&text/html& pageEncoding=&gb2312&%&
&&&&&&&& &title&主页面&/title&
&&&&&&&&&& &meta http-equiv=”refresh”& content=”20;url=main2.jsp”&&&&
& &/head&&
&&&&&& &%=session.getAttribute(&username&) %&,你成功登录,20秒后自动进入主页面!&&&&&
&&&& &/h1&
构建控制层组件(第4步)
&&&&&& 建立数据JavaBean—用户(user);
&&&&&&&& 建立连接数据库的JavaBean—(doa)
&&&&&&&& 建立实现对用户数据库进行操作的java类--db_op.java
2.2 建立数据JavaBean—用户(user)
package JavaB
public class user {
&&&&&&&& private S
&&&&&&&& private S
&&&&&&&& public String getUsername() {
&&&&&&&&&&&&&&
&&&&&&&& }
&&&&&&&& public void setUsername(String username) {
&&&&&&&&&&&&&&& this.username =
&&&&&&&& public String getPassword() {
&&&&&&&&&&&&&
&&&&&&&& }
&&&&&&&& public void setPassword(String password) {
&&&&&&&&&&&&&& this.password =
建立连接数据库的JavaBean—(doa)
package JavaB
public class doa {
&&&&& private String db_
&&&&& private String db_
&&&&& private String db_
&&&&& private String db_
&&&&& public String getDb_username() {return db_}
&&&&& public void setDb_username(String db_username) {
&&&&&&&&&&&&&&& this.db_username = db_
&&&&& public String getDb_password() {return db_}
&&&&& public void setDb_password(String db_password) {
&&&&&&&&&&&&& this.db_password = db_
&&&&& public String getDb_driver() {return db_}
&&&&& public void setDb_driver(String db_driver) {this.db_driver = db_}
&&&&& public String getDb_connection() {return db_}
&&&&& public void setDb_connection(String db_connection) {
&&&&&&&&&&& this.db_connection = db_
在JavaBean—(doa)的基础上,建立实现对用户数据库进行操作的java类---db_op.java
public class db_op {
public Connection db_getConnection(){
Connection conn=
&&& String db_username=&&& String db_password=&&&
&&& String db_driver=&&& String db_connection=
&&& Properties pro = new Properties();&&
&&&& File file = new File(&H:\\web_15\\Login_Proj\\src\\db.properties&);&
&&& try {&&
&&&&&&&&& pro.load(new FileInputStream(file));
&&&& } catch (Exception e) {& e.printStackTrace();&&&& }
&&& db_username=pro.getProperty(&db_username&,&&);
&&& db_password=pro.getProperty(&db_password&,&&);
&& db_driver=pro.getProperty(&db_driver&,db_driver);
&& db_connection=pro.getProperty(&db_connection&,db_connection);
&&&&& Class.forName(db_driver).newInstance();
&&&&&&&&&&& conn=DriverManager.getConnection(db_connection, db_username,db_password);
&&&&&&&&&&
&&&& }catch(Exception e){&& System.out.println(e);&&&&& }
public boolean select_1(user u){&&&&&&&&&&&&&&&&& //查询用户是否已经注册
&&&&& Connection conn=&&&&& ResultSet rs=
&&&&& Statement ps=
&&&&& String xm=u.getUsername();&& String pass=u.getPassword();
&&&&& conn=db_getConnection();
&&&& String s1=&select * from T_userInfo where username='&+xm+&' and password='&+pass+&'&;
&&&&&&& ps=conn.createStatement();
&&&&&&& rs=ps.executeQuery(s1);
&&&&&&& if(rs.next()){
&&&&&&&&&&&&& rs.close();
&&&&&&&&&&&&& ps.close();
&&&&&&&&&&&&& conn.close();
&&&&&&&&&&&&&
&&&&& else{
&&&&&&&&& rs.close();
&&&&&&&&& ps.close();
&&&&&&&&& conn.close();
&&& }catch(SQLException e){
public boolean select_2(String u)&& {
&//在注册时,查询是否有重名的用户已经注册
Connection conn=ResultSet rs=
Statement ps=
conn=db_getConnection();
String s1=&select * from T_userInfo where username='&+u+&'& ;
ps=conn.createStatement();&& rs=ps.executeQuery(s1);
if(rs.next()){
rs.close();&& ps.close();&& conn.close();
rs.close();&& ps.close(); conn.close();
}catch(SQLException e){
public void append(user u){
//注册时,添加注册用户信息
Connection conn=
Statement ps=
conn=db_getConnection();
String xm=u.getUsername();
String pass=u.getPassword();
String s1=&insert into T_userInfo(username,password) values('&+xm+&','&+pass+&') &;
ps=conn.createStatement();
ps.executeUpdate(s1);
ps.close();
conn.close();
}catch(SQLException e){
System.out.println(e);
(5)构建控制层组件(第5步):
一个servlet(LoginServlet.java):实现登录的控制
一个servlet(RegisterServlet.Java):实现注册的验证控制
2.3& web.xml配置文件的解读
构建控制层组件:一个servlet(registerServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
&&&&&& String xm=(String)request.getParameter(&username&);
&&&&&& String mm=(String)request.getParameter(&password&);
&&&&&&& String mm2=(String)request.getParameter(&repassword&);
&&&&&& String type_err=&&;&&&&&&&& db_op b=new db_op();
&&&&&& if(b.select_2(xm)){
&&&&&&&&&&&&&& type_err=xm+&:该用户已经注册!&;
&&&&&&&&&&&& HttpSession s=request.getSession(true);&&& s.setAttribute(&type_err&,type_err);
&&&&&&&&&&&& response.sendRedirect(&Register_err.jsp&);
&&&&&& else if(!mm.equals(mm2)) {
&&&&&&&&&&&& type_err=&两次密码不一致错!&;
&&&&&&&&&&& HttpSession s=request.getSession(true);&&&& s.setAttribute(&type_err&,type_err);
&&&&&&&&&&& response.sendRedirect(&Register_err.jsp&);
&&& else{&& HttpSession s=request.getSession(true);
&&&&&&&&&&&&&& s.setAttribute(&username&,xm);&&&& s.setAttribute(&password&,mm);
&&&&&&&&&&&&&& user u=new user();u.setUsername(xm);u.setPassword(mm);
&&&&&&&&&&&&&& db_op d=new db_op();&&&&&&&& d.append(u);
&&&&&&&&&&&&& response.sendRedirect(&Register_succ.jsp&);
构建控制层组件:一个servlet(LoginServlet.java)
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
&&&& user u=new user();&& String xm=&&;&& String ps=&&;
&&&& xm=request.getParameter(&username&);
&&&& ps=request.getParameter(&password&);
&&&& u.setUsername(xm);
&&&& u.setPassword(ps);
&&&& HttpSession s=request.getSession(true);
&&&& s.setAttribute(&username&,xm);
&&&& db_op d=new db_op();
&&&& boolean tf=d.select_1(u);
&&&& if(tf){
&&&&&&&&&& response.sendRedirect(&main2.jsp&);
&&&& else{
&&&&&&&&& response.sendRedirect(&register2.jsp&);
2.4& web.xml配置文件的解读和配置
(6)部署该程序到服务器Tomcat中,然后运行
&&&&&&&&& 另外,必须对系统进行测试和调试
该程序的设计关键:
(1)了解系统流程,给出系统分析,并给出图形描述;
(2)数据库模型的设计:
&&&&&&&&& 为了使对数据库的操作,具有通用性,采用属性文件,存放数据库连接的有关信息,通过对数据文件的读,获取该信息,实现连接;
(3)网页之间是如何传递信息的?
(4)jsp网页与servlet之间是如何传递信息的:
&&&&&&& 信息由jspàservlet如何实现;
&&&&&&&& 信息由servletà jsp如何实现;
(5)应该自己逐步设计,绝不能找一个类似的程序修该一下。
版权声明:本文为博主原创文章,未经博主允许不得转载。
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:

我要回帖

更多关于 eclipse创建java项目 的文章

 

随机推荐