1

我正在尝试使用 Apache CXF-2.5.2 WSDL2Java 从 wsdl 生成 java 代码。这是我的 WSDL 文件:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:tns="http://soa.mytest.com/services/wsdl/test1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns0="http://soa.mytest.com/test/messages/test1" name="TestManifestPT" targetNamespace="http://soa.mytest.com/services/wsdl/test1" xmlns:jms="http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:jndi="http://www.tibco.com/namespaces/ws/2004/soap/apis/jndi">
    <wsdl:types>
        <xs:schema xmlns:tns="http://soa.mytest.com/test/messages/test1" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soa.mytest.com/test/messages/test1" version="1.2.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
            <xs:complexType name="TestManifest">
                <xs:complexContent>
                    <xs:extension base="tns:Notification"/>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="Message" abstract="true">
                <xs:attribute name="version" type="tns:Version"/>
            </xs:complexType>
            <xs:complexType name="Notification">
                <xs:complexContent>
                    <xs:extension base="tns:Message"/>
                </xs:complexContent>
            </xs:complexType>
            <xs:simpleType name="Version">
                <xs:restriction base="xs:string"/>
            </xs:simpleType>
            <xs:element name="TestManifest" type="tns:TestManifest"/>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="TestManifest">
        <wsdl:part name="body" element="ns0:TestManifest"/>
    </wsdl:message>
    <wsdl:portType name="TestManifestPT">
        <wsdl:operation name="TestManifest">
            <wsdl:input message="tns:TestManifest"/>
        </wsdl:operation>       
    </wsdl:portType>
    <wsdl:binding name="SOAPService_Binding1" type="tns:TestManifestPT">
        <soap:binding style="document" transport="http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS"/>
        <jms:binding messageFormat="text"/>
        <wsdl:operation name="TestManifest">
            <wsdl:documentation/>
            <soap:operation style="document" soapAction="TestManifest"/>
            <wsdl:input>
                <soap:body use="literal" parts="body"/>
            </wsdl:input>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="TestManifestPT">
        <wsdl:port name="SOAPService_Binding1" binding="tns:SOAPService_Binding1">
            <soap:address location=""/>
            <jndi:context/>
            <jms:connectionFactory>GenericConnectionFactory</jms:connectionFactory>
            <jms:targetAddress destination="queue">INSTRUMENT.BULK.REQUEST</jms:targetAddress>
        </wsdl:port>
    </wsdl:service>
   </wsdl:definitions>

对于“Testmanifest”操作,生成的 java 代码没有输入参数。

    package com.mytest.soa.services.testmaster.testbulkresponse.wsdl.test1;

import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.RequestWrapper;
import org.apache.cxf.annotations.DataBinding;

/**
 * This class was generated by Apache CXF 2.5.2
 * 2012-06-07T12:00:34.142+05:30
 * Generated source version: 2.5.2
 * 
 */
@WebService(targetNamespace = "http://soa.mytest.com/services/testmaster/TestBulkResponse/wsdl/test1", name = "TestManifestPT")
@DataBinding(org.apache.cxf.xmlbeans.XmlBeansDataBinding.class)
public interface TestManifestPT {

    @Oneway
    @RequestWrapper(localName = "TestManifest", targetNamespace = "http://soa.mytest.com/test/messages/test1", className = "com.mytest.soa.test.messages.test1.TestManifestDocument")
    @WebMethod(operationName = "TestManifest", action = "TestManifest")
    public void testManifest();
}

与 Axis2-1.6.1 一起使用时,相同的 wsdl 使用输入参数生成函数“testManifest”。任何帮助表示赞赏。提前致谢。

4

0 回答 0