Eclipse构建TomcatWeb项目

初衷:在写下关于Eclipse搭建Web的同时,公司的电脑配置已经快要不能满足MyEclipse10的内耗,出于被迫、无奈,此处省略1000字,转向Eclipse继续开发。

如果你的电脑配置也和我一样,在对MyEclipse优化之后,任不够内耗,我想这篇文章或许对你会给你带来一些帮助。

 

一. 下载Eclipse

Eclipse官方网站:http://www.eclipse.org/downloads/ 

题外话:据网上了解得知中国的破解太牛了,MyEclipse的官方网站需要翻墙才能访问,目前MyEclipse的2014版本已经出来了,感兴趣的话可以百度一下相关信息。

这里我用的版本是太阳神 eclipse-jee-helios-SR1-win32 ,貌似现在最新版本是SR2。

 

二. 相关插件

安装Eclipse的步骤,这里我就省略了,直接上插件了,我用到的插件如下:

1. tomcatPlugin下载地址:http://www.eclipsetotale.com/tomcatPlugin.html

 

2. OpenExplorer下载地址:https://github.com/samsonw/OpenExplorer/downloads

 

三. 搭建Web项目

 

第一种方式:使用tomcatPlugin插件部署WEB项目开发环境

 

(插件的安装步骤在此省略,不明白的请教度娘)

安装完成以后,如下,会出现三个图标

 

Window --> Preferences --> Tomcat  中,选择自己对应的版本,Context declaration mode下选择Server.xml,设置为虚拟目录。

 

添加项目成为tomcat project,项目右键,将Is a Tomcat Project打上勾,填写Context name项目访问工程名,将Subdirectory to set as web application root此处

设置为你项目的根路径,根据自己的项目而定。

 

最后,选择项目右键,此处选择Tomcat porjet -> Update Context definitioin选项,这一步实际上做的事情是将

<Context path="/ServeBackstage" reloadable="true" docBase="D:\project\yeepay\YeePay\ServeBackstage_New\webapp" workDir="D:\project\yeepay\YeePay\ServeBackstage_New\work" />

添加至tomcat的server.xml中。

 

自此已经大功告成了,选择设置好的项目,选择启动,如果你的项目没有报错,则启动成功。

 

请注意:用tomcatPlug插件的方法来部署开发中的环境,优点在于简单便捷,缺点在于,考虑电脑配置和项目大小所占用的内存虚耗,插件始终将N多项目加载与一个tomcat启动,如果你的电脑配置够好,这里可以暂不用考虑太多,如果你的电脑配置一般般,希望能够节省内存,将多个项目配置于多个tomcat中分别启动,请参考第二种方法。

 

 

第二种方式:使用Eclipse自带Servers来管理更多项目,不同项目支持配置多个tomcat容器。

 

1. 在Serves栏空白处选择新增Server

2. 选择对应的Tomcat版本,定义服务名,直接Finish

 

3. 找到项目栏中对应的Servers中的 server.xml打开

 

4. URIEncoding属性是指定tomcat项目的编码格式,这里可以选择配置;Context标签下的属性需要根据自己的项目存放路径进行修改,path是访问路径也需要根据自己的

配置修改,其他不变。

如果不知道存放路径,可以选择Flie - Switch Workspace 来修改查看自己的工作空间存放路径。

 

这里提供了Server.xml的配置模板,提供替换修改。

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8021" shutdown="SHUTDOWN">
  <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
  <Listener className="org.apache.catalina.core.JasperListener"/>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <GlobalNamingResources>
    <Resource auth="Container" description="User database that can be updated and saved" 
    	factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" 
    	pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>
    <Connector port="8022" protocol="AJP/1.3" redirectPort="8443"/>
    <Engine defaultHost="localhost" name="Catalina">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
		<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" 
			xmlValidation="false">
			<Context path="/ServeBackstage" reloadable="true" docBase="D:\project\yeepay\YeePay\ServeBackstage_New\webapp" 
				workDir="D:\project\yeepay\YeePay\ServeBackstage_New\work" />
		</Host>
    </Engine>
  </Service>
</Server>


 

四. 疑问

今天抽了一天的时间整理和学习Eclipse如何进行J2EE开发的过程,中间遇见问题最多的是,在Servers栏中,新增Server,在Server中如下图,加入了指定项目以后

不使用上面提供的server.xml模板替换修改,直接启动,每次启动的时间仅为Server startup in 331 ms,速度很快,很显然这里tomcat没有加载对应的项目,

但是在对应的Server.xml配置文件中,已经自动添加了如下xml,这里自动添加的context没能让项目真正的加载,并完成启动。

<Context docBase="ServeBackstage_New" path="/ServeBackstage" reloadable="true" source="org.eclipse.jst.jee.server:ServeBackstage_New"/></Host>

通过度娘,查到这篇关于 更改Eclipse下Tomcat的部署目录  的文章:http://kingxss.iteye.com/blog/1741438,找到.metadata\.plugins\org.eclipse.wst.server.core\tmp0

默认路径如下图,已经加载了相关内容,但却任然无法加载启动指定项目!!!实在不明白问题出在哪里,请高人指教!

 

 

 

 

 

 

 补充:

双击Servers栏中配置好的tomcat,将Tomcat做如下修改,修改完成保存以后,将不在使用默认工作空间,指向Tomcat weabapp目录下。

 

runtime Eviromer需要将tomcat加入进来,不然项目中导入必须包时 无法添加tomcat的引用包。

 

 

=====================================================================================================

解决疑问

 

分析问题:tomcat启动未加载任何项目,即使在tomcat中关联了该项目依然未能启动指定项目,原因在于Generateweb.xmldeploymentdescriptor,生成的web。xml部署的路径默认指向的地址 Content directory 是WebRoot,而我们的项目是webapp,导入完成项目后,我把新增出来的WebRoot文件夹又给删除了,所以导致了关联不上的问题。

 

如果你在导入或者新建项目的时候,忘记修改实际指向部署web.xml的路径,别慌,可以将当前的项目的 Dynamic Web Module 和 Java 以及 JavaScript三项取消掉,然后重新打开添加,此时下面会出现 Further configuration available 链接,注意看红色圈起来的地方,点击以后即可修改,至此我的疑问已经解开,分享出来,希望能够帮助和我遇

到同样问题的朋友们。

 

 

使用中碰到的问题(不断更新中)

2014-2-21 10:30:28

1. tomcat 热重启的问题:Server中tomcat 下面的 server.xml 修改一下属性,默认添加项目,项目中会增加reloadable="true"

<Context path="/newDcx" reloadable="false" docBase="D:\workspace\newDcx\web" workDir="D:\workspace\newDcx\work" />

 

2. eclipse提示ambiguous 的解决方法:eclipse编译对同一方法不同参数无法区分具体方法,解决如下:

在eclipse.ini -vmargs后面添加  -DtolerateIllegalAmbiguousVarargsInvocation=true
重启并Clean,自动重新编译之后错误消失

 

3. 内存溢出 

java.lang.OutOfMemoryError: Java heap space

修改jdk 使用内存(此方法可行)

找到eclispewindow->preferences->Java->Installed JRE ,点击右侧的Edit 按钮,在编辑界面中的 “Default VM Arguments ”选项中,填入如下值即可。

-Xms64m -Xmx128m

 修改Run Configurations (方法可行)

在代码上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments 参数中的“VM arguments: ”中填入如下值即可。

-Xms64m -Xmx128m

原文:http://blog.csdn.net/wgw335363240/article/details/6397803

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值