我需要实现 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/