不生成JAXB/JAX-WS WSDL代码的Java中的SOAP web服务
如果试图用Java(在WSDL中定义)实现SOAP web服务的客户端和服务器端组件,但是不希望为客户端和服务器存根使用基于WSDL/JAXB的代码生成,那么我应该研究哪些资源/库 记录在案,我试图避免使用不生成JAXB/JAX-WS WSDL代码的Java中的SOAP web服务,soap,jax-ws,xjc,wsimport,Soap,Jax Ws,Xjc,Wsimport,如果试图用Java(在WSDL中定义)实现SOAP web服务的客户端和服务器端组件,但是不希望为客户端和服务器存根使用基于WSDL/JAXB的代码生成,那么我应该研究哪些资源/库 记录在案,我试图避免使用wsimport生成存根的原因是wsimport和xjc都无法为我必须使用的模式文件正确生成Java代码,这些文件数量众多且相当复杂,尽管使用了片段编译,但我仍然遇到了JAXB代码生成逻辑中可能存在的错误(例如,请参见和)总的来说,我的印象是,当涉及到复杂的模式时,这种技术并不十分可靠 那么,
wsimport
生成存根的原因是wsimport
和xjc
都无法为我必须使用的模式文件正确生成Java代码,这些文件数量众多且相当复杂,尽管使用了片段编译,但我仍然遇到了JAXB代码生成逻辑中可能存在的错误(例如,请参见和)总的来说,我的印象是,当涉及到复杂的模式时,这种技术并不十分可靠
那么,有没有什么资源或库可以帮助我通过直接在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"));
如果您需要一些“低级”的东西(但不像将消息写成字符串那样极端),请查看
参考实现是,您可以在中找到入门教程