24.4. 生成 WSDL
使用 Maven 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
注解代码后,您可以使用 java2ws Maven 插件 -wsdl 选项为您的服务生成 WSDL 合同。有关 java2ws Maven 插件选项的详细列表,请参阅 第 44.3 节 “java2ws”。
例 24.8 “从 Java 生成 WSDL” 介绍如何设置 java2ws Maven 插件来生成 WSDL。
例 24.8. 从 Java 生成 WSDL
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-java2ws-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>process-classes</id>
<phase>process-classes</phase>
<configuration>
<className>className</className>
<genWsdl>true</genWsdl>
</configuration>
<goals>
<goal>java2ws</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-java2ws-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>process-classes</id>
<phase>process-classes</phase>
<configuration>
<className>className</className>
<genWsdl>true</genWsdl>
</configuration>
<goals>
<goal>java2ws</goal>
</goals>
</execution>
</executions>
</plugin>
注意
将 className 的值替换为 qualified className。
示例 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
例 24.9 “从 SEI生成 WSDL” 显示为 例 24.7 “完全注解 SEI” 中显示的 SEI 生成的 WSDL 合同。
例 24.9. 从 SEI生成 WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://demo.eric.org/"
xmlns:tns="http://demo.eric.org/"
xmlns:ns1=""
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns2="http://demo.eric.org/types"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xsd:schema>
<xs:complexType name="quote">
<xs:sequence>
<xs:element name="ID" type="xs:string" minOccurs="0"/>
<xs:element name="time" type="xs:string" minOccurs="0"/>
<xs:element name="val" type="xs:float"/>
</xs:sequence>
</xs:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="getStockQuote">
<wsdl:part name="stockTicker" type="xsd:string">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getStockQuoteResponse">
<wsdl:part name="updatedQuote" type="tns:quote">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="quoteReporter">
<wsdl:operation name="getStockQuote">
<wsdl:input name="getQuote" message="tns:getStockQuote">
</wsdl:input>
<wsdl:output name="getQuoteResponse" message="tns:getStockQuoteResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="quoteReporterBinding" type="tns:quoteReporter">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getStockQuote">
<soap:operation style="rpc" />
<wsdl:input name="getQuote">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="getQuoteResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="quoteReporterService">
<wsdl:port name="quoteReporterPort" binding="tns:quoteReporterBinding">
<soap:address location="http://localhost:9000/quoteReporterService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://demo.eric.org/"
xmlns:tns="http://demo.eric.org/"
xmlns:ns1=""
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns2="http://demo.eric.org/types"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xsd:schema>
<xs:complexType name="quote">
<xs:sequence>
<xs:element name="ID" type="xs:string" minOccurs="0"/>
<xs:element name="time" type="xs:string" minOccurs="0"/>
<xs:element name="val" type="xs:float"/>
</xs:sequence>
</xs:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="getStockQuote">
<wsdl:part name="stockTicker" type="xsd:string">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getStockQuoteResponse">
<wsdl:part name="updatedQuote" type="tns:quote">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="quoteReporter">
<wsdl:operation name="getStockQuote">
<wsdl:input name="getQuote" message="tns:getStockQuote">
</wsdl:input>
<wsdl:output name="getQuoteResponse" message="tns:getStockQuoteResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="quoteReporterBinding" type="tns:quoteReporter">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getStockQuote">
<soap:operation style="rpc" />
<wsdl:input name="getQuote">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="getQuoteResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="quoteReporterService">
<wsdl:port name="quoteReporterPort" binding="tns:quoteReporterBinding">
<soap:address location="http://localhost:9000/quoteReporterService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>