如果尝试使用Java(在WSDL中定义)实现SOAP Web服务的客户端和服务器端组件,但是不希望使用WSDL / JAXB,是否应该查看任何资源/库基于客户端和服务器存根的代码生成?
对于记录,我试图避免wsimport
存根生成的原因是wsimport
和xjc
都无法正确生成我必须使用的模式文件的Java代码 - 这是很多而且相当复杂 - 尽管使用了情节编译,我仍然遇到了JAXB代码生成逻辑中可能存在的错误(例如,请参阅here和here),总体而言我的印象是这种技术当谈到复杂的模式时,它不是很稳固。
那么,是否有任何资源或库可以通过直接在HTTP连接上编写和读取XML内容来帮助构建SOAP服务?目前,我只是在write
上致电java.net.URLConnection
,如:
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"));
答案 0 :(得分:1)
如果您需要“低级别”(但不像将字符串写为字符串那样极端),请查看SAAJ。
参考实施是here,你可以在The Java EE 5 Tutorial找到一个入门教程。