java - 将 XML 定义为 JAX-WS 输入参数

标签 java web-services soap

我需要实现 Java SOAP JAX-WS Web 服务。 Web 服务客户端将 XML 文件发送到 Web 服务。然后需要对接收到的XML内容进行处理,最后将处理后的内容以XML格式返回给WS Client。

这是我的示例 XML,具有简单的三个标签。

    <uild>898999999</uild>
    <customer>cName XXX</cusoter>
    <profileId>TEST/TKTG MR</profileId>

我声明了我的 Web 服务方法,如下所示。 RequestXmlDTO 具有 XML 格式的字段。 ProcessedResponseDTO 具有需要作为输出的 XML 字段。我将这两个添加为复杂类型。

@WebService
public class WebService {

    @WebMethod
    public ProcessedResponseDTO getCustomerDetails(RequestXmlDTO requestXml){

    } 

问题 - 这是满足这种情况的推荐且最佳方式吗?

最佳答案

您需要决定“契约(Contract)优先”或“代码优先”策略 如果您决定继续

“契约(Contract)优先”定义您的架构作为第一步。然后生成JAXB对象即可

使用工具。与您提到的类类似,在 java 中声明 Web 服务签名

界面。使用方法签名来生成 WSDL(http://cxf.apache.org/docs/java-to-wsdl.html)。

使用此 WSDL 生成服务器 stub 。您可以使用 ANT 目标,例如

<target name="wsdl2Java" >          
            <java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
                <arg value="-d"/>
                <arg value="modules/deployments/src/java"/>
                <arg value="-p"/>
                <arg value="com.solution.webservices.version1.jaxb"/>
                <arg value="-ant"/>
                <arg value="-impl"/>
                <arg value="-server"/>              
                <arg value="path/wsdl/sample.wsdl"/>
                <classpath>
                    <path refid="cxf.classpath"/>
                </classpath>
            </java>
    </target>

关于java - 将 XML 定义为 JAX-WS 输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29329062/

相关文章:

使用 java 编码时 Eclipse 崩溃。退出代码=-1073740771

ios - 检查是否有新内容上线

java - Angular 6 访问 REST 失败,Access-Control-Allow-Origin

soap - 将值从请求传输到响应(soapUI 模拟服务)

C# 无法将 cookiecontainer 分配给 asmx web 服务客户端

ruby - rails3 顶部的 SOAP 服务

java - 我将如何将 boolean 字符串更改为 JTable 中的 JCheckBox?

java - 如何在枚举中调用附加方法?

java - Apache Commons Codec Base64 是 sun.misc.BASE64 的直接替代品吗?

javascript - 如何通过 Ajax 将值传递给 Web 服务