Java中的SOAP Web服务,无需生成JAXB / JAX-WS WSDL代码

时间:2013-10-07 22:27:52

标签: soap jax-ws xjc wsimport

如果尝试使用Java(在WSDL中定义)实现SOAP Web服务的客户端和服务器端组件,但是希望使用WSDL / JAXB,是否应该查看任何资源/库基于客户端和服务器存根的代码生成?

对于记录,我试图避免wsimport存根生成的原因是wsimportxjc都无法正确生成我必须使用的模式文件的Java代码 - 这是很多而且相当复杂 - 尽管使用了情节编译,我仍然遇到了JAXB代码生成逻辑中可能存在的错误(例如,请参阅herehere),总体而言我的印象是这种技术当谈到复杂的模式时,它不是很稳固。

那么,是否有任何资源或库可以通过直接在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"));

1 个答案:

答案 0 :(得分:1)

如果您需要“低级别”(但不像将字符串写为字符串那样极端),请查看SAAJ

参考实施是here,你可以在The Java EE 5 Tutorial找到一个入门教程。