【发布时间】:2013-10-07 22:27:51
【问题描述】:
如果尝试在 Java 中为 SOAP Web 服务(在 WSDL 中定义)实现客户端和服务器端组件,但不希望使用 WSDL/JAXB,是否有任何资源/库我应该研究客户端和服务器存根的基于代码生成?
为了记录,我试图避免使用wsimport 生成存根的原因是wsimport 和xjc 都无法为我必须使用的模式文件正确生成Java 代码——它们数量众多而且相当复杂 - 尽管使用了分段编译,但我仍然遇到了 JAXB 代码生成逻辑中可能存在的错误(例如,请参阅 here 和 here),总的来说,我的印象是,当涉及到复杂时,这项技术并不是很可靠架构。
那么,我应该研究哪些资源或库来通过直接在 HTTP 连接上写入和读取 XML 内容来帮助构建 SOAP 服务?目前我只是在java.net.URLConnection 上打电话给write,比如:
URLConnection connection = url.openConnection();
connection.setDoOutput(true); // Triggers POST.
connection.setRequestProperty("Accept" , "text/xml, multipart/related");
connection.setRequestProperty("Content-Type" , "text/xml; charset=utf-8");
connection.setRequestProperty("Host" , url.getHost());
connection.setRequestProperty("Proxy-Connection", "keep-alive");
connection.setRequestProperty("Content-Length" , String.valueOf(postContent.length()));
OutputStream output = connection.getOutputStream();
output.write(postContent.getBytes("UTF-8"));
【问题讨论】: