J2EE入门(11) (转)

2023-06-07,,

J2EE入门(11) (转)[@more@]


一般问题和解决方案


不能启动J2EE Server


命名和目录服务端口冲突


症状:当你用-verbose选项启动J2EE server,它显示这些行:


J2EE server listen port: 1050
RuntimeException: Could not initialize server. . .


解决方案:另外一个进程使用1050端口.如果J2EE server已经运行, 你可以输入键入j2ee -stop停止它.如果其他程序使用这个端口,那么你可以编辑在J2EE SDK安装目录下的config/orb.properties文件去改变缺省的(1050)端口号.


关于缺省端口号的更多信息,查阅J2EE SDK文档下载包中的配置指南.


web服务端口冲突


症状: 当你用-verbose选项启动J2EE server, 它显示这些行:



LifecycleException: HttpConnector[8000].open: Java.NET.BindException: Address in use. . .


解决方案: 另一个进程使用8000端口. 你可以编辑在J2EE SDK安装目录下的config/orb.properties文件去改变缺省的8000端口号.


不正确的XML解释器


症状: 当你用-verbose选项启动J2EE server, 它显示这些行:



Exception in thread "main" javax.xml.parsers.FactoryConfigurationError: org.apache.xerces.jaxp.SAXParserFactoryImpl at . . .


解决方案: 删除j2se安装目录中的jre/lib/jaxp.properties文件.


编译错误


Ant不能定位Build文件


症状: 当你键入ant converter, 显示这些信息:



Searching for build.xml Could not locate a build file!


解决方案: 在运行ant之前,先到examples/src目录:


编译器不能解析符号


症状: 当你键入ant converter,编译器报告许多错误,包括这些:



cannot resolve symbol . . . BUILD FAILED . . . Compile failed, messages should have been provided


解决方案: 确认你已经正确设置J2EE_HOME环境变量.查阅检查环境变量.


部署错误


在你的Classpath中有不正确的XML解析器


症状:这个错误显示下列文本:



. . . []java.Rmi.RemoteException:Error saving/opening Deployment Error:Bad mapping of key{0}  class{1}, not found: com.sum.enterprise.deployment.xml.ApplicationNode


解决方案: 删除J2SE安装位置下的jre/lib/ext目录中的jaxp.jar文件.这个JAR文件包含XML解析程序,它不兼容J2EE server.如果没有jaxp.jar文件,那么可能你的classpath引用到tomcat安装目录的XML解析程序.在这种情况下,你应当删除你的classpath引用.


J2EE应用程序客户端运行时错误


客户端产生异常


症状: 客户端报告这个异常:



java.lang.NoClassDefFoundError: com/sun/ebank/EJB/exception/CustomerNotFoundException


解决方案: 确认已经设置APPCPATH为客户端的jar路径.


客户端不能找到ConverterApp.ear


症状: 客户端报告这个异常:



IOException: ConverterApp.ear does not exist


解决方案: 确保ConverterApp.ear文件存在和你已经用-client选项指定它:



runclient -client ConverterApp.ear -name ConverterClient


你已在ConverterApp.ear这个章节中创建它, 创建J2EETM应用程序. 也可查阅, 运行J2EETM应用程序客户端.


客户端不能找到ConverterClient组件


症状: 客户端显示这些行:



No application client descriptors defined for: . . .


解决方案: 检验你已经创建ConverterClient组件和你已经指定它为runclient-name选项. 你已在这个章节中创建ConverterClient组件, 打包J2EE应用程序客户端.


登录失败


症状:在你在login对话框中单击 OK 后,客户端汇报这个异常:



FailedLoginException: Password Incorrect


解决方案: 在login对话框,输入guest作为user name和guest123作为password.


J2EE应用程序不能被部署


症状: 客户端报告下列异常:



NameNotFoundException. root exception is org.omg.CosNaming. . .


解决方案: 部署应用程序.详细说明,查阅部署J2EETM应用程序.


The JNDI Name is Incorrect


症状: 客户端报告下列异常:



NameNotFoundException. Root exception is org.omg.CosNaming. . .


解决方案: 在ConverterApp的JNDI Names标签页中,确信ConverterBean的JNDI names和ejb/SimpleConverter匹配.编辑相应的JNDI Name栏然后重新发布应用程序.


Web客户端运行时错误


在URL中的Web Context(上下文)不正确


症状: 浏览器报告页面无法找到(HTTP 404).


解决方案:检验在URL中的web context (converter)和你在这个章节的Component General Properties对话框中指定的是否匹配, 打包Web客户端. web context区分大小写.


J2EE应用程序没有被部署


症状:浏览器报告无法找到页面(HTTP 404).


解决方案:部署应用程序.


JNDI Name不正确


症状: 当你在网页上单击Submit时,浏览器报告A servlet Exception Has Occurred.


解决方案: 在ConverterApp的JNDI Names标签页,确信ConverterBean的JNDI names和ConverterWAR的相匹配.编辑相应的JNDI Name栏然后重新部署应用程序.


用Verifier工具检测问题


verifier工具可以检测在deployment descriptors中不一致性和method signatures. 这些不一致性经常引起部署和运行时错误. 从deploytool中, 你可以用选择Tools-> Verifier来运行verifier工具的GUI版本. 你也可以运行一个verifier工具的单机版GUI版或command-line版.更多信息,查阅J2EETM SDK 工具.


当全部都失败时


如果没有任何事情去工作,你可以反安装应用程序然后运行cleanup脚本来清除server's repository. 你也需要停止和重启服务器:



j2ee -shutdown cleanup j2ee -verbose