我开始使用 WCF 开发 Web 服务并创建了一个 WCF 服务项目。我让一切保持原样,并将该服务作为 JAX WS 服务导入到 netbeans 中。一切似乎都很好。
Service1 test= new Service1();
CompositeType ct=new CompositeType();
ct.setBoolValue(Boolean.TRUE);
ObjectFactory factory=new ObjectFactory();
ct.setStringValue(factory.createString("StringValue"));
CompositeType result= test.getBasicHttpBindingIService1().getDataUsingDataContract(ct);
我可以发送请求。我可以在 Visual Studio 中中断并查看 CompositeType 对象。但该对象并不是应有的样子:
- boolean 值按预期设置为
true
。 - 字符串值仍然为
null
。 - 当我在 WCF 服务中操作字符串值并将更改对象返回时,字符串设置正确,我可以在 java 中读取它。
为什么我无法将 CompositeType 发布到 java 但可以使用它?
最佳答案
仅凭您提供的详细信息很难判断。
这是我的建议:
在服务端启用跟踪,生成跟踪日志,并使用 SvcTraceViewer 进行分析。为此,请按照this MSDN article on using the service trace viewer中的说明进行操作。 。注意第一次和第二次有什么不同。
打开调试异常。这是通过打开 includeExceptionDetailInFaults 来完成的,其中 you can do by following the instructions here 。注意第一次和第二次有什么不同。
使用Fiddler监控客户端和服务端的线路流量。
通常,一旦执行此操作,您应该了解有关服务端发生的问题的更多信息,并且可以快速诊断问题。尝试一下,然后请报告回来! :)
关于c# - 使用 WCF 服务时发生 Java 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5674837/