tomcat能手或者Unix高手请入,如果今天能解决再加100……

xiao_yuer 2002-09-14 10:06:01
在Win2000+tomcat4.0上成功发布测试的jsp\javaBean发布到Unix(不清楚tomcat的版本,只知道jre只有1.2.2)上后,莫名其妙的问题就来了。
当设置javaBean的scope为page时,第一次页面的访问和javaBean的调用正常,第二次则出错。
当设置javaBean的scope为session时,在同一个session期间(也就是浏览器不关)的访问和javaBean的调用正常,新开一个窗口(或是从另一台机器)来访问则出错。
当设置javaBean的scope为application时,不再出现错误,但这已经和我的应用要求完全不符合了。
让人不解的是,为什么在2000下没有任何问题(scope为page或者session时),到了unix下就出这么莫名奇妙的问题。还有就是为什么将javaBean的作用范围(scope)设为application后,问题又消失了。
附产生的错误(最致命的,整个虚拟机都崩溃了,每次都要重新再启动tomcat)

Full thread dump:

"Thread-20" prio=9 tid=0x132db8 nid=0x9a runnable [0..0x7708f4e0]

"SeedGenerator Thread" daemon prio=9 tid=0x16f5e0 nid=0xf waiting on monitor [0x
770b0000..0x770b04e0]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:424)
at sun.security.provider.SeedGenerator.run(SeedGenerator.java:109)
at java.lang.Thread.run(Thread.java:479)

"Thread-3" prio=9 tid=0x12850 nid=0x1 runnable [0..0x7f7f14a0]

"Thread-2" prio=9 tid=0x290fe8 nid=0xd runnable [0x770f2000..0x770f24e0]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:406)
at java.net.ServerSocket.implAccept(ServerSocket.java:240)
at java.net.ServerSocket.accept(ServerSocket.java:224)
at org.apache.tomcat.service.SimpleTcpEndpoint.acceptSocket(SimpleTcpEnd
point.java:267)
at org.apache.tomcat.service.SimpleTcpEndpoint.acceptConnections(SimpleT
cpEndpoint.java:248)
at org.apache.tomcat.service.TcpListenerThread.run(SimpleTcpEndpoint.jav
a:319)
at java.lang.Thread.run(Thread.java:479)

"Thread-1" prio=9 tid=0x290c00 nid=0xc runnable [0x77113000..0x771134e0]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:406)
at java.net.ServerSocket.implAccept(ServerSocket.java:240)
at java.net.ServerSocket.accept(ServerSocket.java:224)
at org.apache.tomcat.service.SimpleTcpEndpoint.acceptSocket(SimpleTcpEnd
point.java:267)
at org.apache.tomcat.service.SimpleTcpEndpoint.acceptConnections(SimpleT
cpEndpoint.java:248)
at org.apache.tomcat.service.TcpListenerThread.run(SimpleTcpEndpoint.jav
a:319)
at java.lang.Thread.run(Thread.java:479)

"StandardManager" daemon prio=8 tid=0x25bb70 nid=0xb waiting on monitor [0x7f403
000..0x7f4034e0]
at java.lang.Thread.sleep(Native Method)
at org.apache.tomcat.session.StandardManager.threadSleep(StandardManager
.java:418)
at org.apache.tomcat.session.StandardManager.run(StandardManager.java:47
5)
at java.lang.Thread.run(Thread.java:479)

"StandardManager" daemon prio=8 tid=0x2590a0 nid=0xa waiting on monitor [0x7f424
000..0x7f4244e0]
at java.lang.Thread.sleep(Native Method)
at org.apache.tomcat.session.StandardManager.threadSleep(StandardManager
.java:418)
at org.apache.tomcat.session.StandardManager.run(StandardManager.java:47
5)
at java.lang.Thread.run(Thread.java:479)

"StandardManager" daemon prio=8 tid=0x258710 nid=0x9 waiting on monitor [0x7f445
000..0x7f4454e0]
at java.lang.Thread.sleep(Native Method)
at org.apache.tomcat.session.StandardManager.threadSleep(StandardManager
.java:418)
at org.apache.tomcat.session.StandardManager.run(StandardManager.java:47
5)
at java.lang.Thread.run(Thread.java:479)

"Thread-0" daemon prio=9 tid=0x255128 nid=0x8 waiting on monitor [0x7f466000..0x
7f4664e0]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:424)
at org.apache.tomcat.util.Queue.pull(Queue.java:89)
at org.apache.tomcat.logging.LogDaemon$1.run(TomcatLogger.java:199)
at org.apache.tomcat.logging.LogDaemon.run(TomcatLogger.java:214)

"Signal Dispatcher" daemon prio=9 tid=0xf2d20 nid=0x7 runnable [0..0xffffffff]

"Finalizer" daemon prio=9 tid=0xeba68 nid=0x5 waiting on monitor [0x7f4b9000..0x
7f4b94e0]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:112)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:174)

"Reference Handler" daemon prio=9 tid=0xea998 nid=0x4 waiting on monitor [0x7f4d
a000..0x7f4da4e0]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:424)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:114)

"VM Thread" prio=5 tid=0x73de8 nid=0x3 runnable

"VM Periodic Task Thread" prio=8 tid=0xf2a48 nid=0x6 waiting on monitor
#
# Java version:
# HotSpot VM (1.0.1fcs, mixed mode, PA2.0 build 1.2.2.02-99/12/09-PA_RISC2.0)
#
# HotSpot Virtual Machine Error, Unexpected Signal 4
#
# Error ID: 4F533F48500D55580E4350500B22
#

...全文
68 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiao_yuer 2002-09-14
  • 打赏
  • 举报
回复
我用的是IE5.5,这是服务器报的错,和客户端应该没有什么问题。
UNIX我不知道是什么版本,只知道是HP-UX hpd2 B.11.00 A 9000/800 (td)

不过问题解决了。
是因为我在javaBean里使用了XML解析器。本来是用的是:
System.setProperty("javax.xml.parsers.DocumentBuilderFactory","org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
DocumentBuilderFactory df = DocumentBuilderFactory.newInstance();
System.out.println("Get DocumentBuilderFactory:"+df.getClass());
docBuilder = df.newDocumentBuilder();
File configFile = new File("/opt/project/report/config/rptConfig.xml");
Document doc = docBuilder.parse(configFile);//后来发现是在出的错

所以抱着试一试的态度,换为:
com.ibm.xml.parsers.DOMParser parser = new com.ibm.xml.parsers.DOMParser();
parser.parse(new InputSource(new InputStreamReader(new FileInputStream(configFile),"GBK")));
doc = parser.getDocument();
结果成功。太爽了!!!
本来还想用jdom的,但是要改的东西就太多了。

唉,其实我想应该都是低版本惹的祸。因为开始使用的apache解析器版本较高,估计和低版本jdk不兼容导致的那样严重的致命错误。唉,还让我头大了这么许久。
不过解决问题了,心情很好,分数照给。
eyeieye 2002-09-14
  • 打赏
  • 举报
回复
tomcat4是应该可以在1.2上面跑的,你的“Unix”指的是哪个版本?
或者用-server启动试试看
woowindice 2002-09-14
  • 打赏
  • 举报
回复
你用什么browser?换一个browser看看,如果一样的话,
估计可能是虚拟机版本过低的原因
csut_deng 2002-09-14
  • 打赏
  • 举报
回复
不懂,gz
xiao_yuer 2002-09-14
  • 打赏
  • 举报
回复
另外,Unix上的JRE版本升级、Tomcat升级或者换为Weblogic这样的建议是不可行的,因为公司不可能采取这样的举措。
希望高手能提供一些产生这样错误的原因就好了。
另外这种属于错误,不是异常,所以根本没有说是在javaBean的什么语句导致的.

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧