Eclipse+Websphere配置说明
目录
5. eclipse常见问题
一、 前言
本文档用于描述开发青海集采系统过程中使用eclipse+websphere的配置过程。
工程环境:
Jdk1.5
Myeclipse6.0以上
Websphere6.1
TortoiseCVS
二、 安装webSphere2.1. 安装WAS
l 解压was.cd.6100.trial.base.windows.ia32.zip,运行launchpad.exe
l 选择 “启动 WebSphere Application Server - Trial 的安装向导。”
一路“下一步”,提示输入登陆控制台的用户名密码。
l 继续“下一步”直到完成安装。安装完成之后默认会启动“第一步”,如图:
l 选择“安装验证”,如果安装正常会显示如下信息,此时websphere服务已经被启动。
2.2. 配置WAS日志输出方式
l 输入:http://localhost:9060/admin进入webpshere管理平台,如果能看到如下页面,说明websphere正常启动了。填写你设置的用户名密码。
l 为了方便在ecilpse控制台中看到日志信息,所以要设置log信息输出到控制台,(默认情况下log是输出到文件中)。 选择服务器à应用程序服务器àserver1à记录和跟踪àJVM日志,将System.out和System.err下的“文件名”的值修改为“console”
l 在“第一步”控制台中选择“停止服务器”,接下来我们使用eclipse来操作webpshere。
三、 eclipse配置3.1. 下载purchaseEAR工程
下载说明请参考《eclipse操作说明.doc》,一路next即可。 purchaseEAR是一个Enterprise Application Project,用于生成EAR包。因为websphere只能以EAR包的方式部署应用程序。 (一个Enterprise Application Project必须包含一个Web Application Project 或者一个 EJB Application Project,在集采项目中purchaseEAR包含了一个Web Application Project 即 purchase。)
l 使用eclipse下载之后发现工程名称前面有一个“>”标记,表示本地代码与CVS不同步。如图:
l 因为eclipse在创建工程是修改了.mymetadata文件,但是没有改变任何内容。用TortoiseCVS更新一下.mymetadata,即可实现完全同步,如图:
l 在eclipse中右击purchaseEAR 选择Refresh,刷新工程,此时purchaseEAR就完全同步了
3.2. 在eclipse中配置websphere
l 选择windowà preferencesàMyEclipseàApplication ServersàWebSphereà
WebSphere 6.1,在WebSphere home directory中选择你的websphere安装目录,
下文中涉及到websphere安装目录均用“WAS_HOME”表示,如果目录正确,其他的内容会自动填充。选择Enable选项。
l 设置websphere的JDK,选择WAS_HOME下的JDK。
3.3. 部署purchaseEAR
点击部署按钮,选择purchaseEAR工程,Add添加服务器
在Deploy type中提供了两种方式部署:Exploded Archive、 Packaged Archive,以Exploded Archive方法部署,可以实现eclipse调试。但不能打成ear包。以Packaged Archive方式部署,整个工程会以打成ear包的方式进行部署,此时eclipse无法进行调试。所以我们先用Packaged Archive方式生成ear包,在WAS部署完成之后,再以Exploded Archive方式重新部署,实现eclipse调试。选择Packaged Archive点击ok。此时会在WAS_HOME\ profiles\AppSrv01\installableApps下创建一个purchaseEAR.ear包。如图:
3.4. eclipse启动websphere
点击启动服务按钮,选择websphere6.1,选择start。如果以上配置正确,eclipse控制台会打印出websphere的log信息。当看到为“电子商务开放服务器“时,表示服务已启动。
3.5. 修改eclipse部署方式
在看本小节请先阅读四、webSphere配置。以Exploded Archive方式重新部署。
l 首先删除已有的部署,如图:选择Remove。
l 选择Add,然后选择Exploded Archive方式,由于文件已经存在,eclipse会提示你如何处理已存在的文件,我们可以选择后两个删除,或者覆盖。点击Finish完成部署。如图:
l 最后登陆WAS控制台,启动purchaseEAR服务。至此可以使用eclipse调试WAS下的应用程序了。
四、 webSphere配置4.1. 部署工程
l 登陆was控制台,选择“应用程序”à“安装新的应用程序”à在“完整路径”下选择WAS_HOME\ profiles\AppSrv01\installableApps\purchaseEAR.ear。点击下一步。
l 选择启用类重新装入,即实现类的热加载,下一步。
l 在PURCHASE前面打上“√”,下一步。
l 在PURCHASE前面打上“√”,下一步。
l 点击完成之后,点击保存到主配置。
l 保存完成之后,进入应用程序à企业应用程序,你会发现此时多了一个应用程序purchaseEAR。应用程序状态是红色的叉号,表示该应用尚未启动。先不要启动应用。等所有配置完成后在启动。
4.2. 支持jdk1.5
修改配置文件使jsp支持JDK1.5。默认情况下was编译jsp时不支持jdk1.5。修改WAS_HOME\profiles\AppSrv01\config\cells\主机名\applications\purchaseEAR.ear\
deployments\purchaseEAR\purchase.war\WEB-INF\ibm-web-ext.xmi文件,添加下面一段
<jspAttributes xmi:id="JSPAttribute_1211081008033" name="jdkSourceLevel" value="15"/>
要确保xmi:id属性后面的数字在整个ibm-web-ext.xmi中是唯一值。
返回3.5节继续配置。
五、 注意事项
下面列举了一些在websphere下开发时的注意事项。这些注意事项并非完全绝对,也许在某些特定的情况下才会出现这些问题,仅供大家参考!
5.1. JSP注意事项
l EL表达式中变量书写严格,如:${variable? "1":"2"}改写为
${${variable}? "1":"2"}
l new A().getB().getC().getD() 像这种不规范的写法jsp无法解析。可修改为
((new A().getB()).getC()).getD()或者B b = new A(); C c = b.getB(); D d = c.getD();
l String s = (String)request.getAttribute(“s”);
if(s!=“”){…}
在was中永远返回true,无论s的值是否是空字符串,改写为
if(!“”.equals(s)){…}
l 在<c:out>标签中嵌套jsp标签时,jsp标签中的字符串无法被正确解析。
如
<c:out value="
<%=new SimpleDateFormat("yyyy-MM-dd").format(provider.getExpireDate()) %>
/>
改写为
<%
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
%>
<c:out value="<%=sf.format(provider.getExpireDate()) %/>
5.2. webSphere注意事项
l websphere服务默认为开机自动启动,修改为手动启动。
右击我的电脑à管理à服务和应用程序à服务à右击 IBM WebSphere Application Server V6.1à属性à启动类型改为手动。
l 在修改java文件之后,was在加载class的过程中出现faild to activation MBean异常导致hibernate无法正常加载时。重新部署整个工程,同时把“为资源创建MBean”
的选项去到。如图:
6. eclipse常见问题
1、Httpservlet cannot be resolved to a type的原因与解决方法
原因:Httpservlet cannot be resolved to a type,显然是Eclipse找不到相应的包,即javax.servlet。
解决:
jdk 里不包括servlet-api.jar 这个包,此包在Tomcat 中存在
项目名--> 右键
Property--> 选择
Java Build Path--> 选择
Add External JARs--> 选择
把servlet-api.jar 的路径输入即可
2、Eclipse项目上的红叉解决方案
0.查看Problems视图,定位错误,发现处理之;
1.检查Build Path中的各个依赖jar及library是否有warning的标志,若有,处理之;
2.project->clean 工程;
3.window->preference->java->complier->building->build path problems->cirluar dependency设置成warning
4.对于安装有Maven插件的,可以右键项目->Maven->Update Project;
3、Eclipse项目出现红色叹号
原因:缺少了一些jar包等文件引起的
解决:
a. eclipse工程前面出现红色叹号的项目,鼠标右键,在右键菜单中,依次找到:Build Pathàconfig build path或者Build Pathàconfigure build path
b. 点击eclipse项目的configure build path后,在弹出来的窗口中,找到Libraries页签,可以看到一些jar包是红色叉号的,这种jar包就是找不到对应文件的jar包,引起这种eclipse工程前面出现红色叹号的项目,可能是因为从外部导入的项目或者是因为某些文件被删除了,才导致红色叹号。找到这些eclipse项目中没有的jar包,删除它。
c.在eclipse项目中,删除多余的jar包后,或者全部jar包删除后,点击Add JARs功能,找到当前项目中的jar包,导入到eclipse项目中。
4、导入项目发现 Target runtime Apache Tomcat v7.0 is not defined.
Eclipse
右键--》properties--》targeted runtime,把原项目的tomcat去掉勾选,换上自己的Tomcat
myEclipse
在工程目录下的.settings文件夹里,打开org.eclipse.wst.common.project.facet.core.xml文件,其内容是:
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <runtime name="Tomcat v7.0"/> <fixed facet="java"/> <fixed facet="jst.web"/> <fixed facet="wst.jsdt.web"/> <installed facet="java" version="1.6"/> <installed facet="jst.web" version="3.0"/> <installed facet="wst.jsdt.web" version="1.0"/> </faceted-project>
删除第一句话
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="java"/> <fixed facet="jst.web"/> <fixed facet="wst.jsdt.web"/> <installed facet="java" version="1.6"/> <installed facet="jst.web" version="3.0"/> <installed facet="wst.jsdt.web" version="1.0"/> </faceted-project>