一般问题和解决方案
不能启动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