在配置好的服务中的写的诸如System.out.print 的信息都输出到什么地方去了?

huangry 2003-04-05 11:54:11
我在配置好的服务中的写的诸如System.out.print 的信息都输出到什么地方去了?

没有这些输出的信息,我该怎么调试啊,真是头大
...全文
374 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangry 2003-04-05
  • 打赏
  • 举报
回复
可是那个 Tomcat启动时候弹出的那个 Console Window 一会儿就没有了呀 :(

我到什么地方去找这个窗口

顺便问一下, 为什么说那个东东会省掉很多麻烦?


还有关于你说的调试的问题, 我就是对方法本地测试过后觉得没问题 , 才配置服务的,可是他在作为服务运行的时候的执行的结果不是我所期望的 , 所以我很郁闷,想知道到底发生了什么事情, 我再自己试试看,实在不行我再麻烦你 :(
Norwaywoods 2003-04-05
  • 打赏
  • 举报
回复
To huangry(凯撒):
赶快去下一个axis1.1rc2,可以帮你省很多麻烦,不过跟你问的问题无关。

你的问题:
你运行Tomcat的时候,不会弹出一个Console window吗?应该就是输出到那里去了!
你仔细看看你的System.out.println();执行到了没有。况且要调试服务端,也不必如此呀!你直接在你的Service类里面写个main函数,然后,在里面就可以一个一个的对你暴露出的方法进行单元测试了。
huangry 2003-04-05
  • 打赏
  • 举报
回复
我看了log文件,可是找不到我要的东西嘛,都是服务配置的信息
huangry 2003-04-05
  • 打赏
  • 举报
回复
Tomcat4.1.8 + axis 1.0 +
huangry 2003-04-05
  • 打赏
  • 举报
回复
能告诉我怎么看吗?


我用的就是Tomcat, 在什么地方?
yinxp2 2003-04-05
  • 打赏
  • 举报
回复
像tomcat,输出到了控制台
Jrun,输出到了log文件中。
像你这种情况,估计应该在log文件中
仔细查查
huangry 2003-04-05
  • 打赏
  • 举报
回复
茅塞顿开!!! 实在是太崇拜你了! ;)
Norwaywoods 2003-04-05
  • 打赏
  • 举报
回复
上面说的“不再是通用的Object类型,而直接就是你指定的类型。”是不对的。我把我自己写的Soap Engine的特性当成Axis的特性了,呵呵!对不起!

补充一点:
有些Soap引擎服务端在返回值的时候,并不是自描述的,也就是说不是下面这样的:

<result xsi:type="xsd:string">Hello!</result>

而是:

<result>Hello, I'm a string!</result>

因此,如果让你的Client端的Soap引擎来序列化它呢?她都没有说自己是什么类型。这个时候只有程序员自己主动指定returnType的类型了,这也是setReturnType()存在的意义了。在这个角度上来说有setReturnType方法可以增强Axis的互操作性(也就是兼容性)。
Norwaywoods 2003-04-05
  • 打赏
  • 举报
回复
是这样的setReturnType(),addParameter()在某些特定的环境下,还是有用的。如果你直接使用invoke(new Object[] { str }) 这样来call远程的方法,你发出去的Soap请求的参数的就总是这样的:

<arg0 xsi:type="xsd:string">Hello!</arg0>

参数的名字是没有意义的:arg0。如果你指定了parameter和returnType:

call.addParameter("testParam", org.apache.axis.Constants.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING);

那么发出的soap请求参数如下:

<testParam xsi:type="xsd:string">Hello!</testParam>

并且invoke返回的不再是通用的Object类型,而直接就是你指定的类型。
也就是:

String ret = call.invoke();
huangry 2003-04-05
  • 打赏
  • 举报
回复
是我调用的时候错了 :( 这个错误:
No parameters specified to the Call object! You must call addParameter() for all parameters if you have called setReturnType().

于是我就把我调用setReturnType()的那一句删掉, 就好了, 进程等在那里了 :-0


可是我对这几个函数的作用还是不明白setReturnType(),addParameter(), 既然我直接这样调用invoke(new Object[] { str }) 就可以了,那那几个函数还要来干嘛呢?能告诉我吗? 我感到很疑惑
huangry 2003-04-05
  • 打赏
  • 举报
回复
哦, 我终于找到了 使我自己不小心把那个Exception覆盖掉了, 所以看不出来 谢谢 现在总算知道什么错了


Norwaywoods 2003-04-05
  • 打赏
  • 举报
回复
如果你设为Application ,当然不用call.setMaintanSession()了。你这样说也没用。你还是贴程序吧!
huangry 2003-04-05
  • 打赏
  • 举报
回复
这几个我都考虑到过了 , flag的初始值是false, 这个方法由服务端触发,但是我还没能有机会去运行那个触发的程序, 客户端已经结束传输了 :(


scope我设为了Application , 难道这个还需要调用call.setMaintanSession()吗?这句话我倒是没加
Norwaywoods 2003-04-05
  • 打赏
  • 举报
回复
唉~~~~。你这样讲很难说的明白的。可能得原因很多。你的flag的初始值是什么?有什么方法改变这个flag,这个方法是由服务端触发,还是由客户端触发。就是说谁来改变flag的值。可能,你必须把scope置为session.
huangry 2003-04-05
  • 打赏
  • 举报
回复
现在我已经有了这个console窗口了 ,可是那个窗口里还是没有出现任何信息阿
huangry 2003-04-05
  • 打赏
  • 举报
回复
好吧, 我还是先放弃自己调试了研究这个东东的念头,先问问你

我现在想要做的东西是这样的, 我的客户端提交一个请求, 服务端根据这个请求回送一个数据段, 但是回送这个数据段要先判断一个标志位比如叫做boolean TransferPermitted, 只有在这个标志为是true的时候, 服务器端才是允许发出这个数据段的, 否则服务端一直循环 并且sleep() , 直到这个标志位被设为true才跳出循环 返回那个数据

while( true){
if(flag) return data;
Thread.sleep(100)
}

就是这个样子

但是我在运行的时候,他根本就不等待, 直接就返回了个空值, 我实在是不明白怎么回事 :( 所以我才要调试服务器端,看看到底它运行到了什么地方,
Norwaywoods 2003-04-05
  • 打赏
  • 举报
回复
对,如果象george_yingjun(竹子)说的那样,你就看不到输出了。所以,你必须取消WINDOW的自启动服务了,改为直接打开Tomcat.
george_yingjun 2003-04-05
  • 打赏
  • 举报
回复
TOMCAT窗口一启动就没有的问题,
可能在于,
你把它作为WINDOW的自启动服务了。
看看控制器-》管理工具-》SERVICE吧。
huangry 2003-04-05
  • 打赏
  • 举报
回复
之前我可肯定是可以的, localhost:8080 我经常进去的 因为我懒得打那句配置服务的话,所以总是在配置窗口中reload Axis。 那时候,肯定是没有tomcat的console window 的
huangry 2003-04-05
  • 打赏
  • 举报
回复
我安装了axis1_1 rc2之后, tomcat运行时居然有那个dos窗口了,真是奇怪


可是那个窗口里面还是没有任何东西输出 :(
加载更多回复(1)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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