起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1075|回复: 13

[分享]服务端常见错误的解决**

[复制链接]
发表于 2008-9-12 15:26:31 | 显示全部楼层 |阅读模式
以Tomcat为例,说明服务端各种错误的解决,虽然以Tomcat为例,其他服务器一样可以参考。

服务端错误一般可以从以下地方来看:
1. Tomcat黑窗口
2. X3 Server\Tomcat\logs\*.log
3. X3 Server\Tomcat\bin\*.log

如果出现了错误,有时错误是客户端报出来的,但是错误是在服务端发生的,需要看服务端的详细错误信息才可以。
回复

使用道具 举报

 楼主| 发表于 2008-9-12 15:49:15 | 显示全部楼层

分析日志

一个典型的错误如下图显示:
错误信息给出了出错的时间(图中绿色背景)、错误详细信息(图中黄色背景)、代码调用栈(图中紫色背景)

还可以看到最终的错误是错误信息1
但是这个错误是由下面的错误2引发的
这个错误2又是下面错误3引发的(caused by说明是由它引发的错误)
因此,解决问题时候,要从第一个发生的错误来解决,图中的错误就要根据错误3的详细信息来判断是什么错误,解决了这个问题,上面的两个问题也就解决了。

1.png

44.87 KB, 下载次数: 624

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-17 11:31:03 | 显示全部楼层
[B]错误信息:[/B]
2008-8-1 18:00:44 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2008-8-1 18:00:44 org.apache.catalina.core.StandardContext start
严重: Context [/transfile] startup failed due to previous errors

[B]问题原因:[/B]
启动文档服务器出错了,更具体的错误信息在Tomcat\bin\alfresco.log

[B]解决方法:[/B]
根据Tomcat\bin\alfresco.log 日志文件中的详细错误信息解决
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-17 11:42:25 | 显示全部楼层
[B]错误信息:[/B]
2008-8-1 18:00:44 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2008-8-1 18:00:44 org.apache.catalina.core.StandardContext start
严重: Context [/x3] startup failed due to previous errors

[B]问题原因:[/B]
启动X3服务时候出错了,具体错误信息没有显示出来,要显示详细信息,请参考 http://bbs.justep.com/forum.php?mod=viewthread&tid=21125 可以得到详细错误信息

[B]解决方法:[/B]
根据日志文件中的详细错误信息解决
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-17 11:58:10 | 显示全部楼层
[B]错误信息:[/B]
严重: Error initializing endpoint
java.lang.Exception: Socket bind failed: 730048

[B]问题原因:[/B]
Tomcat缺省使用8081、8005、8009端口,这些端口被其他进程占用了,Tomcat无法再使用这些端口,就会出以上错误。

[B]解决方法:[/B]
1 已经启动了一个Tomcat实例,端口被这个Tomcat占用了
  用服务器配置工具,把X3发布到这个Tomcat实例中,让X3与其他的服务在一个Tomcat实例中

2 找到占用端口的进程,关闭这些进程,释放这些端口
  用 telnet -ano 可以查看到当前占用的端口,以及每一个端口被哪个进程占用了
  用任务管理器关闭这些进程以释放端口

3 修改Tomcat的端口,让他使用没有被占用的端口
  Tomcat用到的端口在 Tomcat\conf\Server.xml 文件中配置
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-17 12:06:41 | 显示全部楼层
[B]错误信息:[/B]
java.security.InvalidParameterException: null\lib not a directory

[B]问题原因:[/B]
没有定义JUSTEP_X3_SERVER_HOME的环境变量

[B]解决方法:[/B]
1 在我的电脑| 属性 | 高级 | 环境变量 中,在系统变量添加 JUSTEP_X3_SERVER_HOME=[X3 Server所在的目录]
2 在tomcat\bin目录的startup.bat文件中增加
  set JUSTEP_X3_SERVER_HOME=[X3 Server所在的目录]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-18 10:32:32 | 显示全部楼层
[B]错误信息:[/B]
java.lang.Exception: no HASPJava in java.library.path

[B]问题原因:[/B]
Tomcat启动时候,找不到加密锁需要的HASPJava.dll找不到,缺省在 X3 Server\Tomcat\bin 目录下,也可以放在 Path 环境变量的目录
如果是Linux ,没有安装加密锁驱动,或者找不到 libHASPJava.so 文件

[B]解决方法:[/B]
1 windows下,X3 Server\Tomcat\bin 或者 Path 环境变量的目录下,没有 HASPJava.dll 文件
2 Linux下,按照说明安装加密锁驱动
Linux下加密锁驱动在X3 Server\bin\linux_driver目录下
这里以RedHat版本为例介绍:
安装RPM包,文件是 X3 Server\bin\linux_driver\RPM\aksusbd-redhat-1.8.1-2.i386.rpm
rpm -i aksusbd-redhat-1.8.1-2.i386.rpm
复制 X3 Server\bin\linux_driver\script\lib\libHASPJava.so文件到到JRE\lib\i386目录下,比如: /usr/jdk1.5.0_06/jre/lib/i386目录下面
Suse 版本RPM包是X3 Server\bin\linux_driver\RPM\aksusbd-suse-1.8.1-2.i386.rpm,其他跟RadHat一样。

如果安装以后,还出现这个错误, 请检查在java.library.path 的目录下,有没有这个HASPJava.dll(libHASPJava.so)文件,查看java.library.path的方法请参考 http://bbs.justep.com/forum.php? ... id=21065#post143030
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-18 13:56:07 | 显示全部楼层
[B]错误信息:[/B]
Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'

[B]问题原因:[/B]
使用Oracle数据库,但是在Tomcat无法找到数据库的驱动程序

[B]解决方法:[/B]
把应用服务器所使用的ORACLE JDBC驱动拷贝到:
d:\x3server\TOMCAT\common\lib目录;
d:\x3server\IMServer\lib目录;
d:\x3server\lib\jdbc目录
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-18 14:02:06 | 显示全部楼层
[B]错误信息:[/B]
no ocijdbc9 in java.library.path
no ocijdbc10 in java.library.path
Can't find library ocijdbc10 (libocijdbc10.so) in sun.boot.library.path or java.library.path

[B]问题原因:[/B]
使用Oracle数据库,但是没有安装Oracle数据库的客户端程序,或者没有设置需要的环境变量

[B]解决方法:[/B]
按照以下步骤来检查,每做一步检查一下是否ok,如果不ok,继续
1 安装Oracle数据库客户端程序
2 设置环境变量 ORACLE_xxx   LD_LIBRARY_PATH
3 定义Tomcat的启动参数来设置 java.library.path 增加执行Oracle\lib 的目录
更多详细内容,请参考 http://bbs.justep.com/forum.php? ... id=21065#post143033
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-18 14:13:28 | 显示全部楼层
[B]错误信息:[/B]
Network error IOException: Connection refused: connect

[B]问题原因:[/B]
无法连接到SQL Server数据库服务器
可能的原因:
1 SQL Server 没有安装SP3或者SP4
2 SQL Server没有监听缺省的1433端口,而是别的端口
3 服务器有防火墙或者路由器上有防火墙,禁止了对服务器的1433端口的访问

[B]解决方法:[/B]
1。检查你的SQL有没有打补丁,没有的话要打上补丁,检查的方法是在查询分析器中运行:
select @@version
如果出来的版本号是8.00.760以下,则表明你未安装sp3及以上的补丁,要装上.

2。服务器sql server似乎并没有监听1433端口,重点检查你的sql server设置了
打开程序 Microsoft SQL Server 服务器网络使用工具

    打开该工具后,在"常规"中可以看到服务器启用了哪些协议.
  一般而言,我们启用命名管道以及 TCP/IP 协议.
  点中 TCP/IP 协议,选择"属性",我们可以来检查 SQK Server 服务默认端口的设置
  一般而言,我们使用 SQL Server 默认的1433端口.如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接.


3。看有没有防火墙之类的屏蔽了1433端口
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 06:38 , Processed in 0.046823 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表