使用wsHttpBinding在Java客户机中使用WCF服务

使用wsHttpBinding在Java客户机中使用WCF服务,java,wcf,web-services,java-metro-framework,wshttpbinding,Java,Wcf,Web Services,Java Metro Framework,Wshttpbinding,我试图让Java客户机与WCF wshttpbinding Web服务通信。但到目前为止我还没有成功。电话挂断或我收到:“SOAPFaultException:无法处理该消息。这很可能是因为操作失败。”http://tempuri.org/ISampleService/GetServiceName'不正确,或者因为消息包含无效或过期的安全上下文令牌,或者因为绑定之间不匹配。如果服务由于不活动,已对通道进行orted。为防止服务过早中止空闲会话,请增加服务端点绑定上的接收超时。“ 我的Web服务只

我试图让Java客户机与WCF wshttpbinding Web服务通信。但到目前为止我还没有成功。电话挂断或我收到:“SOAPFaultException:无法处理该消息。这很可能是因为操作失败。”http://tempuri.org/ISampleService/GetServiceName'不正确,或者因为消息包含无效或过期的安全上下文令牌,或者因为绑定之间不匹配。如果服务由于不活动,已对通道进行orted。为防止服务过早中止空闲会话,请增加服务端点绑定上的接收超时。“

我的Web服务只是默认的VisualStudio2010生成的“WCF服务库模板”

我的java客户端是在netBeans 7.0.1中生成的,存根是使用新的其他-->Web服务-->Web服务客户端生成的,我正在引用本地WSDL

我尝试在生成的存根中添加WebServiceFeature wsAddressing=new AddressingFeature(true);但它只是抛出上面的异常


我看到其他人也有类似的问题;但是,我看不到任何真正的解决方案。任何建议都将不胜感激。

听起来您有一个soap格式问题。java客户端生成的soap XML对WCF服务没有意义。要了解服务期望调用的soap XML是什么,请使用服务。此应用程序在WinForm应用程序中动态创建服务代理。在该应用程序中,调用服务操作并单击XML选项卡(右窗格底部格式化选项卡旁边)。您将在此选项卡中看到请求和响应soap

接下来,为配置WCF服务,并从java客户端调用该服务,以查看它正在发送的soap XML。现在,您可以比较这两条soap消息,看看有什么不同。需要将java客户端配置为生成WCF期望的soap格式


WCF团队最近专门针对java发布。这些可能不适用于您的特定情况,但可能值得一看。

WsHttpBinding
默认情况下将消息安全性与SSPI协商和安全对话结合使用。我在这方面也花了很多时间,但我还没有找到任何解决方案。Glassfish应该支持WS-security,但我一直无法让任何东西正常工作。@Jeff,你找到它的解决方案了吗?我面临着完全相同的问题。