为什么从TCL WS客户端调用java webservice时返回额外的头信息

为什么从TCL WS客户端调用java webservice时返回额外的头信息,java,web-services,tcl,tclws,Java,Web Services,Tcl,Tclws,我开始学习如何使用api通过TCL客户机调用JAX-WSWebService。我在glassfish服务器上部署了一个简单的calculate webservice(使用java/jaxws/netbeans编写),它被我的tcl webservice客户端成功调用。soap消息交换看起来很好。然而,在客户端调用glassfish Web服务后,我收到了额外的标题,我不确定它是如何返回的,以及如何处理它,以及为什么它会显示在我的屏幕上 set xns [dict get [::WS::Utils

我开始学习如何使用api通过TCL客户机调用JAX-WSWebService。我在glassfish服务器上部署了一个简单的calculate webservice(使用java/jaxws/netbeans编写),它被我的tcl webservice客户端成功调用。soap消息交换看起来很好。然而,在客户端调用glassfish Web服务后,我收到了额外的标题,我不确定它是如何返回的,以及如何处理它,以及为什么它会显示在我的屏幕上

set xns [dict get [::WS::Utils::GetServiceTypeDef Client CalculatorWS tns1:add] xns] definition {param1 {type xs:int comment {}} param2 {type xs:int comment {}}} xns tns1 result is :7
有谁能帮我阻止打印/显示此标题吗?我遗漏了什么吗?

约翰13在评论中说的话

这在我的古老版本的tclws上没有发生,但下载最新版本时,只剩下一堆puts语句供调试。这很奇怪,因为tclws使用日志包,并且代码中有大量::log::log debug语句,这使得打开/关闭更容易


要解决您的问题,您只需grep tclws包并删除这些行,或者用::log::log debug替换这些puts语句。这不是一个简单的搜索和替换,因为tclws在服务器代码中使用puts写入套接字。但是,如果您只使用客户端,那么ClientSide.tcl和Utilities.tcl文件中很少有足够的实例可以手动处理。

Tclws有一些debug
put
。我认为应该有人检查代码并删除所有代码。感谢Johannes13提供了准确的指针。感谢,禁用puts in ClientSide.tcl完成了这项工作。您可能希望将日志中未出现的调试消息视为bug。如果您没有“真实”登录,只需以
anonymous
身份登录即可。
package require WS::Client
::WS::Client::GetAndParseWsdl http://xxxx.xx.xx.com:8099/CalculatorWS/CalculatorWS?wsdl
set param1 5
set param2 2
set inputs [list param1 $param1 param2 $param2]
set result [ ::WS::Client::DoCall CalculatorWS add $inputs]
set res [dict get $result return]
puts "result is :$res"