我在针对.NET STS和安全的Web服务运行Java(使用Metro)客户端时遇到问题。但是,当我运行基于.NET的客户端时,它始终有效。
您可能已经知道,当运行JAX-WS客户端时,它会在运行时期间从服务请求元数据(即使它在设计时已经运行了wsimport)。但是,似乎这个运行时元数据请求是我的问题所在。
我面临的问题是,在元数据的运行时请求期间,我的WCF服务导出的某些WSDL导致Java客户端在mex请求期间“挂起”。当它挂起时,它甚至无法发出RST请求。
例如,我可以到达一个我有9 [OperationContract]属性的地方,它可以工作。但是,当我添加第10个服务方法时,它不起作用。但是,如果我删除9中的一个,那么它的工作原理。我知道特定方法没有问题,因为我可以混合匹配并保持相同的模式。
我似乎无法推断出为什么某些WSDL工作而某些工作没有的模式或原因。我强烈怀疑服务方法的数量是否有限制。但是,这可能是导出的WSDL的“整体复杂性”的问题吗?
有没有人有任何想法?有没有人遇到过这个问题?
如果需要更多信息,我可以发布它。我只是想让初始帖子保持可管理的长度。
我还要补充一点,我正在运行STS并在.NET 4中保护Web服务,它们基于WIF(因此我不必担心安全设置)。我的.NET客户端也是.NET 4.在Java方面,我使用Netbeans 6.9.1和Metro 2.1运行Glassfish 3.我已经验证我收到了在Metro 2.0上运行的相同问题。
答案 0 :(得分:1)
答案 1 :(得分:0)
根据给出的示例,有可能达到MaxMessageReceivedSize或MaxStringContentLength限制。您是否尝试过增加MaxMessageReceivedSize和MaxStringContentLength的值来进行绑定?您可以尝试启用WCF跟踪,如果达到任何此类限制,则会记录警告。