【发布时间】:2014-09-25 06:37:28
【问题描述】:
我正在尝试为使用 WCF 和 NTLM 身份验证实现的 Restful Web 服务编写 Java 客户端。
我能够使用 Apache HTTPClient 库来连接和检索数据。
以下代码以 JSon 文本形式给出了响应。
DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.getCredentialsProvider().setCredentials(new AuthScope(hostName, 443), new NTCredentials(userName, password, hostName, domainName));
httpclient.getAuthSchemes().register("ntlm", new NTLMSchemeFactory());
HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 150000);
HttpGet httpget = new HttpGet(url);
httpget.setHeader("Content-Type", "application/json");
HttpResponse response = httpclient.execute(httpget);
HttpEntity responseEntity = response.getEntity();
content = EntityUtils.toString(responseEntity);
现在我正在编写 JSon 解析器以将 JSon 文本转换为业务对象(手动创建的类)。
在我们使用 Axis/CXF 等框架使用基于 SOAP 的 Web 服务时,有谁知道如何自动化业务对象类创建和自动化响应解析器以将 Json 文本转换为 Java 对象?
【问题讨论】:
-
您是在问是否已经存在将 JSon 文本直接解析为 Java 对象的解析器?或者您是否在寻求一种从服务的 WSDL 模式创建代理类的方法?如果服务同时公开 SOAP 和 REST 端点,您可以通过将
?wsdl附加到服务的 URL 来获取 WSDL。生成的 DTO 应该适用于 REST 和 SOAP 端点 -
当调用 REST 调用时,我需要一个框架来生成基于服务和转换器的 DTO,从原始 JSon 文本到 DTO。 SOAP 服务未公开
-
但是可以通过将
?wsdl附加到服务URL 来获得WSDL,例如http://host/service.svc?wsdl吗?如果可以,您可以使用创建服务代理的众多工具之一来创建 DTO。如果不能,则没有用于创建 DTO 的架构。您可以使用工具从 JSON 示例创建 DTO,假设该示例包含您将遇到的所有 DTO。 -
没有wsdl。 :-(
标签: java c# json web-services wcf