Java 使用WCF wsdl的高速客户端,未设置响应对象的属性
我试图使用JAX-WS和Metro库从Java客户机使用WCF web服务。我已经使用wsimport成功地生成了客户机,并且可以打开与服务器的会话,但是服务返回的会话令牌没有设置到Java的响应对象中。然后,当我将空字符串传递到endSession时,服务返回一个错误,endSession在需要SessionToken时发送一条没有正文内容的消息 以下是我的“主要”方法的要点 公共静态无效字符串[]args{ MyService服务=新的MyService MyPort端口=service.getBasicHttpBinding; 仿真请求=新的仿真请求; request.setUnimportantProperties; SessionTokenResponse会话=port.beginSessionandMulateRequest; port.endSessionsession.getSessionToken; } 我得到的错误是session对象中的sessionToken为null。我已确定sessionToken从未设置。我无法进入beginSession方法,因为该端口是动态生成的代理 我发出的请求如下: XXXX 我得到的答复是: 2011-09-30T17:49:38.570Z 2011-09-30T17:54:38.570Z e579dd3e-34df-4396-ae42-1ebf03c9f301 在WSDL中,我的SessionTokenResponse对象定义如下: xmlns:tns=http:\\MyNamespace /**由WsImport生成*************************************/ @XmlAccessorTypeXmlAccessType.FIELD @XmlTypename=SessionTokenResponse,propOrder={ sessionToken } 公共类会话响应 扩展响应 { @XmlElementname=SessionToken 公共字符串sessionToken; 公共字符串getSessionToken{ 返回sessionToken; } 公共void setSessionTokenString值{ this.sessionToken=值; } } 当然还有其他操作,但我只发布了相关的操作和类型 有没有人有足够的地铁经验告诉我我忘记了哪种愚蠢的设置?Java 使用WCF wsdl的高速客户端,未设置响应对象的属性,java,wcf,jax-ws,Java,Wcf,Jax Ws,我试图使用JAX-WS和Metro库从Java客户机使用WCF web服务。我已经使用wsimport成功地生成了客户机,并且可以打开与服务器的会话,但是服务返回的会话令牌没有设置到Java的响应对象中。然后,当我将空字符串传递到endSession时,服务返回一个错误,endSession在需要SessionToken时发送一条没有正文内容的消息 以下是我的“主要”方法的要点 公共静态无效字符串[]args{ MyService服务=新的MyService MyPort端口=service.g
感谢修复,web服务没有在响应中提供名称空间信息。当响应如下所示时,它工作正常:
<SessionTokenResponse xmlns="http://My.Namespace">
<Errors />
<Messages />
<Warnings />
<SessionToken>e579dd3e-34df-4396-ae42-1ebf03c9f301</SessionToken>
</SessionTokenResponse>